Для этого функция $ должна вернуть объект, у которого есть метод 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, время: 14:25. |