1

我有一个.js将几个绑定OnChange Events到我的Controls.

现在我有一个function()正在改变所有这些Controls...

我的问题是现在所有人都在onchange events开火......

没有我的unbinding一切,我有什么选择onChange Functions

示例代码

$('#Sections,#Sections2,#Sections3,#Sections,4').bind('change', function () {
    SomeAwesomeFunctionUnrelatedToTheOneBelow('CUSTOM');
});

然后从另一个(更改功能)

function SetText(name, value) {
    if (value != null)
        { $('#' + name).val(value); }
    else
        { $('#' + name).val(''); }
}

在此执行后,所有 4 个 onchange 函数都运行......我需要解决这个问题。

4

1 回答 1

0

使用 jQuery 的Event Namespacing使用命名空间标记每个事件,稍后您可以只取消绑定(或触发)change该特定命名空间的事件。

捆绑:

// binding a 'change' event with 'ns1' namespace
$('#some_element').bind("change.ns1", function() { ... })

// binding a 'change' event with 'ns2' namespace
$('#some_element').bind("change.ns2", function() { ... })

解除绑定:

// un-binding only the 'change' event with 'ns1' namespace
$('#some_element').unbind("change.ns1")

// un-binding only the 'change' event with 'ns2' namespace
$('#some_element').unbind("change.ns2")
于 2013-11-04T21:11:16.103 回答