RGBPlus,
Вы здесь, на сайте попробуйте нажать кнопку "запустить", там все работает. |
Интересует логика:
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> |
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> |
Да, логика, она такая логичная
<!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 |
:)
<!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> |
Цитата:
То что вы написали/переписали, это я могу дописать. Ммммм ... в общем под логику вы подстроились, но задача не решилась! Попробую объяснить еще раз, смотрите, будет к примеру: <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% за исключением, что обратно в *** не скрывает данные ((( |
Цитата:
<!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> |
Цитата:
Цитата:
Цитата:
|
RGBPlus,
Доставайте элементы как нибудь по-другому, либо вешайте уникальный id на каждый элемент |
Цитата:
---- Добъем до 100%!? :D Слассы .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> |
Часовой пояс GMT +3, время: 07:28. |