我试图在jQuery中使用带触发器和绑定的选择器。它是一个简单的代码,我似乎无法让它工作:(。
这就是我在做什么。
$(document).ready(function (){
var ctrlChanged = jQuery.Event("CtrlChanged");
//********** Any time a button with id*=btnAddNewEmailAddress is clicked, raise event that parent control has changed.
$('[id *= "btnAddNew"]').click(function () {
$('[id *= "btnAddNew"]').trigger(ctrlChanged);
});
});
要订阅以上活动,我使用以下代码。
$('[id *= "btnAddNew"]').bind('CtrlChanged', function(){alert('Control Changed')})
这种组合不起作用。当我点击id为“btnAddNew”的按钮时,我看不到警告信息。
但是如果我用
之类的东西替换[id * =“btnAddNew”]$('body').trigger('ctrlChanged')
然后绑定
的相应变化$('body').bind('ctrlChanged', function(){alert('Control is changed'})
就像魅力一样。
我想知道,触发器和绑定是否适用于选择器。我会这么认为......但他们不是......
如果是,那么我做错了什么?
答案 0 :(得分:0)
我会改变这个:
$('[id *= "btnAddNew"]').click(function () {
$('[id *= "btnAddNew"]').trigger(ctrlChanged);
});
到
$('[id *= "btnAddNew"]').click(function () {
$(this).trigger(ctrlChanged);
});
您可能还必须将ctrlChanged
事件对象移动到全局范围;即将它移到$(document).ready()
之外,就在好之前。