向jQuery对象添加新方法
Adding new methods to jQuery objects
我正在创建一个导航栏,它将根据你所在的网站页面(PHP生成的"selected"类)打开
我试图使一个方法在jQuery和附加到某些对象的id。我想让它尽可能模块化,我猜——我正试图学习更多关于javascript中的OOP的知识。
这是我的HTML:
<div id="workNav">Work</a></div>
<div id="workNavContents">
<a class="selected" href="foo.html">Video/Film</a>
<a class="" href="foo.html">Photography</a>
</div>
<div id="clientsNav"><a href="#">Clients</a></div>
<div id="clientsNavContents">
<a href="foo.html">Agencies/Clients</a>
<a href="foo.html">Directors/Photographers</a>
</div>
和我的Javascript:
var showSelected = new function(){
if ($(this).children('.selected')){
$(this).show();
}
}
$('#workNavContents').showSelected = showSelected;
$('#workNavContents').showSelected();
$('#clientNavContents').showSelected = showSelected;
$('#clientNavContents').showSelected();
有些东西告诉我,我严重错过了jQuery与javascript的关键点。如有任何帮助,不胜感激。
谢谢!M
$(...)
每次调用时都会返回一个新对象。
$.fn.showSelected = function() { ... };
显然缺少一点理解。jQuery使得允许用户自定义变得很容易。您所需要做的就是访问他们通过$.fn
公开的jQuery原型。一旦设置好,您的扩展名就可以使用了。
注意,我选择了淡出,所以很明显,它的工作
var showSelected = function(){
if ($(this).children('.selected')){
$(this).hide().fadeIn(2000);
}
}
$.fn.showSelected = showSelected;//you could also simply assign the function to this
$('#workNavContents').showSelected();
下面是一个演示:http://jsfiddle.net/mEgsX/
还请注意,您不需要在函数上使用new
。这创建了一个函数对象,是另一个完整的对话。
相关文章:
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何将onChange方法添加到ExtJS 4表单中的所有字段(textField)中
- 将新对象添加到本地存储
- 如何向.apply()方法添加回调
- 在Knockout中将新项添加到对象数组
- 向对象添加新方法和值,同时避免重复
- 什么'在javascript中将新方法添加到对象中的区别是什么
- 分机.js确认方法添加新行字符
- 使用原型将新方法添加到JScrollPane
- 如何在响应和请求中添加新方法
- 如何通过原型添加Nodelist/HtmlColaction新方法
- 在使用AJAX获取html内容后,向新元素添加监听器的正确方法是什么?(jQuery,Javascript)
- Typescript装饰类添加新方法
- 如何在JavaScript中为字符串添加新方法?
- 在javascript中创建原型,添加一个新方法来引导日期拾取器
- 如何在javascript中为根类对象添加一个新方法
- 向现有模块化模式对象添加新方法
- 如何在Ext Core中添加一个新方法
- 如何向Dojo添加新方法
- 向jQuery对象添加新方法