我需要创建一个我可以用.on调用的函数("点击")
到目前为止,我有......
jQuery.fn.extend({
createCase: function () {
alert('smeg');
}
});
$("#results").on("click", ".cancel_case_btn").createCase();
所有这一切都是警惕' smeg'页面打开时,单击元素时不执行任何操作
答案 0 :(得分:2)
为什么不简单地做这样的事情?
var createCase = function () {
alert('smeg');
};
$("#results").on("click", ".cancel_case_btn", createCase);
答案 1 :(得分:2)
您需要委托元素上的click事件,以便在单击相应的项目后,您可以调用您创建的用于jquery对象的函数。
jQuery.fn.extend({
createCase: function () {
alert('smeg');
}
});
$("#results").on("click",".cancel_case_btn", function()
{
$(this).createCase();
});
答案 2 :(得分:2)
你无法按照自己的想法去做。当您调用.on
时,您必须传递一个函数作为最后一个参数来注册onclick事件的回调。
如果您愿意,仍然可以使用新函数扩展jquery,但是您需要在该函数中注册回调,如下所示:
jQuery.fn.extend({
registerCreateCaseClickHandler: function () {
$(this).on("click", function() {
// do whatever you want
}
//register any other events you care about
}
});
然后你会像这样使用它:
$("#results .cancel_case_btn").registerCreateCaseClickHandler();
当然,创建扩展程序实在是太过分了。定义createCase
函数并将其作为回调传递给.on
事件会更容易,如下所示:
function createCase() {
var clickedButton = $(this);
// do stuff
}
$("#results").on("click", ".cancel_case_btn", createCase);