1

我想为 jQuery 提供一个扩展,以便我重新绑定事件处理程序。这是因为事件处理程序在使用 ajax 加载局部视图时被绑定,并且它们被绑定到$(document)以便它们在页面上触发。

但是,如果再次下载部分时页面没有刷新,我现在会绑定两个事件。等等。

因此,我创建了一个扩展,它将取消绑定先前的事件并重新添加它。

这是一个合理的解决方案吗?

jQuery.fn.extend({

    offOn: function (types, selector, data, fn) {
        this.off(types, selector, fn);
        this.on(types, selector, data, fn);
    }

});

在通过我的主页上的点击事件加载的部分中使用这样的方法。

<script type="text/javascript">


$(function() {
    $(document).offOn('click', '#my-details-section  a.delete-row', onDeleteRow);

    function onDeleteRow() { // do something }
});

</script>
4

1 回答 1

0

我建议看看创建一个插件。这真的很容易。以下是一些帮助您入门的文档:创建 jQuery 插件

这将使您可以更轻松地重用它。

于 2013-05-10T03:59:02.250 回答