如果我正在编写一个jQuery插件
$.fn.newWin = function(docTypes) {
$(this).live("click",function(){
alert("I am done");
});
};
此插件可以作为
调用$("#content a, #partners a").newWin();
基本上我想要的是将.live
与.delegate
交换。我怎样才能实现这一点,因为我还必须将被调用元素字符串传递给.delegate
函数?
答案 0 :(得分:2)
我不建议你在这里使用委托。如果可以(从jQuery 1.7开始),请使用.on()
代替
$.fn.newWin = function(docTypes) {
$(this).on("click",function(){
alert("I am done");
});
};
答案 1 :(得分:1)
这取决于您想要实现的目标(插件的实际架构)。但它可能如下所示:
$.fn.newWin = function(elements_selector) {
$(this).delegate(elements_selector, "click",function(){
alert("I am done");
});
};
可以像这样调用:
$("#content, #partners").newWin("a");
如果jQuery比1.7更新,您应该切换到.on()
而不是.live()
或.delegate()
。请参阅documentation of .on()
jQuery function。
这是你所期望的吗?
答案 2 :(得分:0)
$.fn.newPlug = function(){
var selector = $(this).selector;
$(document.body).delegate(selector, 'click', function(){
// do something...
});
};
看看这个!