Vaio,
можно сделать вот такой костыль
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<div id="container">
<input type="text" id="input_text"/>
<input type="password" id="input_password" />
</div>
<input type="button" value="show/hide" onclick = "test();">
<script>
function $(selector){
return document.querySelector(selector);
}
function password(params){
var self = this;
this.show = params.show;
getState();
this.getState = getState;
params.text.onkeypress = onKeypress;
params.password.onkeypress = onKeypress;
function onKeypress(){
var self = this;
setTimeout(function(){
var attr = self.getAttribute("type");
if(attr == "text") params.password.value = self.value;
else params.text.value = self.value;
},0);
}
function getState (){
if(self.show)
{
setDisplay(params.text, true);
setDisplay(params.password, false);
}
else
{
setDisplay(params.text, false);
setDisplay(params.password, true);
}
self.show = !self.show;
}
function setDisplay(elem, show){
if(show) elem.style.display = "";
else elem.style.display = "none";
}
}
var pass = new password({
password:$("#input_password"),
text:$("#input_text"),
show:false // задает показывать ли изначально содержимое
});
function test(){
pass.getState();//метод изменяет состояние (показываеть скрывает)
};
</script>
</body>
</html>
|
cyber,
function $(selector){
return document.querySelectorAll(selector)[0];
}
А почему не так
function $(selector){
return document.querySelector(selector);
}
|
Hekumok,
потому что это просто пример, и мне просто так удобней) |
Цитата:
|
просто это уже привычка, когда пишу тестовый пример в основном делаю что бы функция возвращала 1 элемент и если нужно делаю еще 1 что бы возвращала массив(нужно очень редко). Просто лень каждый раз писать $("#id")[0] и все))
|
Цитата:
|
Hekumok,тупая привычка за которую нужно начинать бить себя по рукам(по тому что querySelector быстрей);)
|
| Часовой пояс GMT +3, время: 11:08. |