【问题标题】:twitter bootstrap model event "shown" called twice using jquery on event handlertwitter 引导模型事件“显示”在事件处理程序上使用 jquery 调用了两次
【发布时间】:2012-08-08 09:40:44
【问题描述】:

我使用以下方式加载 Twitter 引导模型 (http://twitter.github.com/bootstrap/javascript.html#modals):

$("#multiple_choice_question").modal();

然后我调用 jQuery 的 .on() even 处理程序来执行更多操作,一旦模型完全加载,但 .on() 函数似乎被调用了两次?

例如,如果我这样做,我会得到两个随机数:

$("#multiple_choice_question").on("shown",function() {
    console.log(Math.floor(Math.random() * 101)); 
});

我怎样才能阻止这种情况?

【问题讨论】:

  • 已修复! $("#multiple_choice_question").unbind("shown");
  • 你能显示你打电话给modal() 的地方吗:关于用户操作,准备好了吗?仅供参考,如果您的触发器有data-toggle="modal",则不需要调用此modal()。例如,您可以尝试重现 this jsfiddle 中的错误吗?
  • Unbind 对我不起作用,使用 .one('shown') 而不是 .on('shown') 注册事件修复了它。

标签: jquery twitter-bootstrap modal-dialog


【解决方案1】:

@simo.one('shown') 注册活动的回答对我有用。从jQuery docs 开始,使用.one() 来“将处理程序附加到元素的事件。处理程序对每个事件类型的每个元素最多执行一次。”

【讨论】:

    猜你喜欢
    • 2010-12-04
    • 2011-08-29
    • 2011-09-22
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    相关资源
    最近更新 更多