【问题标题】:ActionLink executing multiple timesActionLink 执行多次
【发布时间】:2012-03-07 06:41:34
【问题描述】:

我有一个 ajax 操作链接,它将部分附加到 div。

$('#hypNewCriteria').click(newClick);
...
var newClick = (function ()
{
    console.log('newClick');
    $.ajax(this.href, {
        success: function (result)
        {
            ...
        }
}

在第一页加载和返回的每个部分上,我(可能不必要地)正在通过 document.ready 执行

$('#hypNewCriteria').click(newClick);

...后续点击操作链接;返回的部分视图数量每次增加 1。点击 7 次后,它返回 8 个分音。我希望只有 1 个部分附加。

我怀疑 .click(newClick) 事件正在附加。有没有办法只设置一个点击事件或在我设置另一个点击事件之前清除该事件?

【问题讨论】:

    标签: asp.net-mvc-3 jquery


    【解决方案1】:

    您可以使用 jQuery 的 unbind() 方法来取消绑定事件。

    http://api.jquery.com/unbind/

    我也会研究 live() jQuery 方法。这会将事件绑定到添加到页面的所有当前和未来元素,这对于加载部分内容或添加需要始终添加事件的项目的页面很有用。

    【讨论】:

    • 没问题。我不认为 one() 是你要找的。这将使事件只触发一次并解除绑定。如果您希望链接可以多次点击,这将使链接在第一次点击后无效。
    【解决方案2】:

    试试.one():

    $('#hypNewCriteria').one('click', newClick);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 2015-10-18
      相关资源
      最近更新 更多