Для этого функция $ должна вернуть объект, у которого есть метод hide и метод show. Открой исходники jQuery и посмотри как там сделано.
|
Цитата:
<html> <head> <style> div{ background: blue } </style> </head> <body> <div>foo</div> <div>foo</div> <div>foo</div> <div>foo</div> <div>foo</div> <div>foo</div> <div id="foo">foo</div> <script> $=function(el){ if(typeof(el)==="string") return $.create([].map.call(document.querySelectorAll(el), function(el){return el})) return $.create([el]) } $.create=function(arr){var o=Object.create(this); o.arr=arr; return o} $.hide=function(){this.arr.forEach(function(el){el.style.display="none"})} $.show=function(){this.arr.forEach(function(el){el.style.display="block"})} $("div").hide() $(foo).show() </script> </body> </html> |
Цитата:
|
Цитата:
<html> <head> <style> div{ background: blue } </style> </head> <body> <div class="foo">foo</div> <div class="foo">foo</div> <div class="foo">foo</div> <div class="foo">foo</div> <div class="foo">foo</div> <script> $=function(el){ if(typeof(el)==="string") return $.create([].map.call(document.querySelectorAll(el), function(el){return el})) return $.create([el]) } $.create=function(arr){var o=Object.create(this); o.arr=arr; return o} $.className=function(){return this.arr.map(function(el){return el.className})} alert($("div").className()) </script> </body> </html> теперь можно |
Это не совсем то, придется очень много функций создавать, например, $('div').innerHTML
Может можно как то проверить вызывается ли функция или нет? |
Часовой пояс GMT +3, время: 04:44. |