Спасибо попробую. Возникла другая проблема. Если элемент не существует, то метод undefined. И на существующие элементы метод перестает работать. Подскажите, пожалуйста, как это обойти?
|
код в студию=)
|
Пока код все тот же.
tel = function(window){
return {
elems : function(e) { dd = document.getElementById(e); return this;},
first: function () {
alert(dd.innerHTML+" - "+this);
return this;
},
second: function () {
alert(dd.id+" - "+this);
return this;
}
}
}(window);
tel.elems("a").first().second();
tel.elems("b").first().second();
Если id="a" на странице не существует, то el.elems("b").first().second(); не выполнится, а надо чтобы работал. |
elems : function(e) {
try {
dd = document.getElementById(e);
} catch(e) {}
return this;
},
|
Спасибо, я тоже так думал. Но все равно не работает.
|
Кстати, вот так у меня не получилось
function $() {return {}.prototype = tel.elems; }
Зато вышло так,
function $(e) {return {}.prototype = tel.elems(e); }
Но я сделал так,
function $(e) {return tel.elems(e); }
тк.. с прототипами у меня дела совсем плохо обстоят. Хотя буду рад любому пояснению касательно того, что это такое и зачем они нужны и как с ними работать. |
http://learn.javascript.ru/inheritance-intro
Цитата:
лучше уже так
function $(e) {return tel; }
|
Спасибо за информацию. Уже начинаю немного понимать, в плане прототипов, особенно в сравнении с php. Хотя еще только на далеко базовом уровне.
Ваш пример не работает, и что не менее Важно теряется elems, т.е. даже если и вернуть корректно tel и заменить его на другое название то все равно придется вызывать elems, например $.elems(id) а нужно $(id) А самое главное, если id не существует, то код не работает, и это нужно как-то обойти. |
Цитата:
Цитата:
вот так правильно function $(e) {return tel.elems(e); }
<!DOCTYPE HTML>
<html>
<head> </head>
<body>
<script>
var object_ = {
message: function (id){
alert(id)
return this;
}
}
function $ (id) {
return object_.message(id);
}
$('привет');
</script>
</body>
</html>
|
Спасибо за ответ.
try{}cathe(){} не дает результата. Насколько я понимаю, вызывается метод к элементу которого еще не существует. В общем если эту проблему решить, то все будет просто замечательно. |
| Часовой пояс GMT +3, время: 13:57. |