Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.08.2015, 15:28
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

RGBPlus,
Вы здесь, на сайте попробуйте нажать кнопку "запустить", там все работает.
Ответить с цитированием
  #12 (permalink)  
Старый 12.08.2015, 15:41
Аватар для RGBPlus
Аспирант
Отправить личное сообщение для RGBPlus Посмотреть профиль Найти все сообщения от RGBPlus
 
Регистрация: 10.02.2014
Сообщений: 34

Интересует логика:

1) поле #txt он изначально должен показывать в виде ***
2) после нажатия на #btn он должен показать 123456
3) после еще одного нажатия на #btn он должен показать ***


Вот ваш скрипт, чуть чуть переписанный! Сейчас у него логика немного другая от требуемой.

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
<p><span id="btn">Password</span> <span id="txt">123456</span><br></p>
<script>
	btn.onclick=function(){
		if(/\*+/.test(txt.innerHTML))  {txt.innerHTML="I am visible"; this.innerHTML="Password"; return}
		txt.innerHTML="***"; this.innerHTML="Password"
	}
</script>
</body>
</html>

Последний раз редактировалось RGBPlus, 12.08.2015 в 16:20.
Ответить с цитированием
  #13 (permalink)  
Старый 12.08.2015, 16:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

textToggle смена текста и callback
RGBPlus,
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
  $.fn.textToggle = function(arr, fn) {
    return this.each(function() {
        $(this).click(function() {
            var c = 0;
            return function() {
                $(this).text(arr[c++ % arr.length]);
                fn && fn()
            }
        }());

    })
};
$(function(){
     $('p').textToggle(["***", "Мой текст"]);
$('.pole').textToggle(["показать", "скрыть звездочками"], function() {
    $('p').click()
}).click();
});
  </script>
</head>

<body>
<div>
    <p>Мой текст</p>
    <span class="pole">скрыть звездочками</span>
</div>
</body>
</html>

Последний раз редактировалось рони, 11.03.2019 в 22:09.
Ответить с цитированием
  #14 (permalink)  
Старый 12.08.2015, 16:07
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

Да, логика, она такая логичная
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<p><span id="btn">Password</span> <span id="txt">*****</span><br></p>
<script>
    btn.onclick=function(){
        if(/\*+/.test(txt.innerHTML))  {txt.innerHTML="12345678"; return}
        txt.innerHTML="*****";
    }
</script>
</body>
</html>


PS для запуска html run

Последний раз редактировалось javaQest, 12.08.2015 в 16:11.
Ответить с цитированием
  #15 (permalink)  
Старый 12.08.2015, 16:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109


<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<p><span id="btn">Password</span> <span id="txt">******</span><br></p>
<script>
    btn.onclick=function(){
        txt.innerHTML=["******","12345678"][+/\*+/.test(txt.innerHTML)]
    }
</script>
</body>
</html>
Ответить с цитированием
  #16 (permalink)  
Старый 12.08.2015, 16:18
Аватар для RGBPlus
Аспирант
Отправить личное сообщение для RGBPlus Посмотреть профиль Найти все сообщения от RGBPlus
 
Регистрация: 10.02.2014
Сообщений: 34

Сообщение от javaQest
Да, логика, она такая логичная
Я себя отвратительно чувствую, ибо похоже что не умею выражать свои мысли

То что вы написали/переписали, это я могу дописать. Ммммм ... в общем под логику вы подстроились, но задача не решилась!

Попробую объяснить еще раз, смотрите, будет к примеру:

<p><span id="btn">Password</span> <span id="txt">123456</span></p>
<p><span id="btn">Password</span> <span id="txt">456789</span></p>
<p><span id="btn">Password</span> <span id="txt">789456</span></p>


... и завтра таких полей будет много, и по этому очень важны данные, которые будут указаны в html - ваш скрипт с ними не работает, а просто живет свой жизнью! Надеюсь теперь станет понятнее, что я хотел сказать изначально

Скрипт написанный ksa выполняет мою задачу на 99% за исключением, что обратно в *** не скрывает данные (((
Ответить с цитированием
  #17 (permalink)  
Старый 12.08.2015, 16:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,214

Сообщение от RGBPlus
Скрипт написанный ksa выполняет мою задачу на 99% за исключением, что обратно в *** не скрывает данные
Добъем до 100%!

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
<link rel="stylesheet/less" type="text/css" href="style.less">
<script src="http://cdnjs.cloudflare.com/ajax/libs/less.js/2.5.0/less.min.js"></script>
-->
<style type='text/css'>
.button-pole {
	cursor: pointer;
}
</style>
<script type='text/javascript'>
$(function(){
	$('.pole').each(function(){
		var txt=this.innerHTML;
		$(this).data('text',txt);
		this.innerHTML='***'
	});
	$('.button-pole').click(function(){
		var o=$(this.parentNode).find('.pole');
		var txt=o.text();
		o.text(o.data('text'));
		o.data('text',txt);
		this.innerHTML=(this.innerHTML=='показать')? 'скрыть': 'показать';
	})
});
</script>
</head>
<body>
<div>
    <p>Мой текст <span class="pole">скрыть звездочками</span></p> <span class="button-pole">показать</span>
</div>
</body>
</html>
Ответить с цитированием
  #18 (permalink)  
Старый 12.08.2015, 16:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от RGBPlus
id="btn"
Сообщение от RGBPlus
id="btn"
Сообщение от RGBPlus
id="btn"
Ответить с цитированием
  #19 (permalink)  
Старый 12.08.2015, 16:27
Профессор
Посмотреть профиль Найти все сообщения от javaQest
 
Регистрация: 07.08.2015
Сообщений: 154

RGBPlus,
Доставайте элементы как нибудь по-другому, либо вешайте уникальный id на каждый элемент
Ответить с цитированием
  #20 (permalink)  
Старый 12.08.2015, 16:33
Аватар для RGBPlus
Аспирант
Отправить личное сообщение для RGBPlus Посмотреть профиль Найти все сообщения от RGBPlus
 
Регистрация: 10.02.2014
Сообщений: 34

Сообщение от javaQest Посмотреть сообщение
RGBPlus,
Доставайте элементы как нибудь по-другому, либо вешайте уникальный id на каждый элемент
Тоже к этому пришел, а то получается полная каша!
----

Добъем до 100%!?

Слассы .button-pole и .pole буду увеличивать на 1 при каждом использовании, можно скрипт ниже подстроить, что бы он смотрел и разделял .button-pole(+1) и .pole(+1)

Надеюсь понятно выразился, ниже в HTML думаю наглядно
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="http://code.jquery.com/jquery-latest.js"></script>
	<script type='text/javascript'>
	$(function(){
		$('.pole').each(function(){
			var txt=this.innerHTML;
			$(this).data('text',txt);
			this.innerHTML='***'
		});
		$('.button-pole').click(function(){
			var o=$(this.parentNode).find('.pole');
			var txt=o.text();
			o.text(o.data('text'));
			o.data('text',txt);
			this.innerHTML=(this.innerHTML=='Password')? 'Password': 'Password';
		})
	});
	</script>
</head>
	<body>
		<p>
			<span class="button-pole">Password</span> <span class="pole">123456</span>
		</p>
		<p>
			<span class="button-pole1">Password</span> <span class="pole1">456789</span>
		</p>
		<p>
			<span class="button-pole2">Password</span> <span class="pole2">789123</span>
		</p>
	</body>
</html>

Последний раз редактировалось RGBPlus, 12.08.2015 в 16:35.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема со scroll Chrome Элементы интерфейса 2 21.10.2013 14:46
прогкрутка к якорям cOAPerator Общие вопросы Javascript 20 27.08.2013 03:30
нужно заставить одновременно работать слайдер и модальное окно обратной связи kvant355 Javascript под браузер 3 22.07.2013 16:34
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03