Ты ошибаешься. Дело не в this, а в том, что я написал несколько постов назад.
Твой последний пример работает, потому что идентификатор $$ теперь используется в другой области видимости - вне кода внутри тэга <div>. Попробуй написать:
document.getElementsByTagName("div")[2].onclick=function(){
alert($$(this).$$prev().innerHTML);
};
и убрать атрибут onclick в соответствующем <div>, и всё будет работать. |
Но ведь если убрать
066 obj.$$prev = function() {
067 var elm=this;
068 do {
069 elm = elm.previousSibling;
070 } while(elm && elm.nodeType != 1);
071 return _$$.$(elm);
072 }
073 obj.$$next = function() {
074 var elm=this;
075 do {
076 elm = elm.nextSibling;
077 } while(elm && elm.nodeType != 1);
078 return _$$.$(elm);
079 }
080 obj.$$first = function() {
081 var elm=this;
082 elm = elm.firstChild;
083 return _$$.$(elm && elm.nodeType != 1 ? elm.nextSibling : elm);
084 }
085 obj.$$last = function() {
086 var elm=this;
087 elm = elm.lastChild;
088 return _$$.$(elm && elm.nodeType != 1 ? elm.previousSibling : elm);
089 }
090 obj.$$parent = function(num) {
091 var elm=this;
092 num = num || 1;
093 for (var i=0; i<num; i++)
094 if (elm != null) elm = elm.parentNode;
095 return _$$.$(elm);
096 }
097 obj.$$html = function() {
098 var elm=this;
099 return _$$.$(elm).innerHTML;
100 }
то все работает в любой области видимости... |
Можна подробнее, пожалуйста, если то убрать, то что работает?
|
все сам разобрался, нужно заворачивать this в функцию а потом вызывать по onclick ее с передачей ей this
|
| Часовой пояс GMT +3, время: 14:50. |