Спасибо попробую. Возникла другая проблема. Если элемент не существует, то метод 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, время: 17:06. |