2011-12-12 108 views
0

我创建了这个插件,使应用程序更容易工作。创建一个小的jQuery插件

这里是链接:http://jsfiddle.net/X5Squ/

我的问题是,它始终只使用元素的1,请不要编辑数据和数据5功能,因为这些工作完全对等的部分,但我需要打电话给我的功能开始工作。

任何帮助非常感谢!谢谢。

回答

0

在你的插件,你应该采取行动每一个匹配元素,然后一切为了匹配的元素返回maintain chainability

$.fn.jtoggle = function (addUnderline) { 
    return this.each(function() { 
     // Do what you need on this matched element 

    }); 
}; 

维护chainability意味着我们可以做的东西,如:

$(".jtoggle").jtoggle(true).addClass("xyz"); 
+0

我刚刚试过这个,你可以请编辑代码并发送给我更新的版本。谢谢。 –

2
$(document).ready(function(){$('.jtoggle').jtoggle(true);}); 

您是否尝试过使用.each这个?我认为问题在于它没有传递DOM元素的数组。我缺乏创建插件太多的经验,但似乎这可以通过做很容易避免以下几点:

$(document).ready(function(){ 
    $('.jtoggle').each(function(){ 
     $(this).jtoggle(true); 
    }); 
}); 

(这也意味着你可以安全地删除您在jtoggle本身具有的。每个)

+1

'.each()'通常意味着插入插件,以便插件的用户不必显式循环。 –

+0

那里没有参数。但改变这一点至少会让你有机会测试问题是否确实在传递元素数组而不是在插件本身中处理它。 – Flater