我有一个Backbone App,使用HandlebarsJS作为我的HTML模板。现在我有一个按钮来触发登录弹出框。我的问题是,我必须双击按钮/链接,直到弹出窗口打开。这是为什么??我正在使用Magnific Popup
- 插件。也许它与此有关?
我的HTML看起来像这样:
<li>
<a href="#" class="login">
<span>Login</span>
</a>
</li>
在我的Backbone View中我有:
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文件中。
任何人都可以帮助我吗?提前谢谢......
答案 0 :(得分: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');
之后就可以了!!!
答案 1 :(得分:1)
将e.stopPropagation();
更改为e.preventDefault()
。发生的事情是,第一次点击时,URL会变为“/#”,然后再次单击它,因为它已经在“/#”URL上,所以代码的其余部分就是动作。 e.preventDefault()
将在#link。