Ты ошибаешься. Дело не в 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, время: 11:46. |