【问题标题】:BackboneJS - Why double-click to fire event?BackboneJS - 为什么双击触发事件?
【发布时间】:2014-06-18 10:04:46
【问题描述】:

我有一个 Backbone 应用程序,将 HandlebarsJS 用于我的 HTML 模板。现在我有一个按钮来触发登录弹出框。我的问题是,我必须双击按钮/链接,直到弹出窗口打开。这是为什么??我正在使用Magnific Popup-plugin。或许与此有关?

我的 HTML 如下所示:

<li>
   <a href="#" class="login">
      <span>Login</span>
   </a> 
</li>

在我的主干视图中,我有:

events: {
    'click .login': 'login',
},

login: function(e){
    e.stopPropagation();
    $('.login').magnificPopup({
            items: {
                src: '#loginbox',
                disableOn: 700,
                type: 'inline',
                mainClass: 'mfp-fade',
                removalDelay: 160,
                preloader: false,
                fixedContentPos: false
            },
            closeBtnInside: false
        });
 }

登录框本身位于登录链接所在的同一个 HTMl 文件中。

谁能帮帮我?在此先感谢...

【问题讨论】:

    标签: javascript backbone.js magnific-popup


    【解决方案1】:

    好的,我自己解决了:

    $('.login').magnificPopup({
            items: {
                src: '#loginbox',
                disableOn: 700,
                type: 'inline',
                mainClass: 'mfp-fade',
                removalDelay: 160,
                preloader: false,
                fixedContentPos: false
            },
            closeBtnInside: false
        }).magnificPopup('open');
    

    添加.magnificPopup('open');后就可以了!!!

    【讨论】:

      【解决方案2】:

      e.stopPropagation(); 更改为e.preventDefault()。发生的情况是,第一次单击时,URL 会更改为“/#”,然后再次单击它,因为它已经在“/#”URL 上,所以对其余代码进行操作。 e.preventDefault() 将停止 # 链接之后的浏览器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-31
        • 2012-09-28
        • 1970-01-01
        • 2012-01-25
        • 1970-01-01
        • 2021-05-27
        相关资源
        最近更新 更多