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, время: 21:23. |