我在页面内有这样的div
<div class="test">Click here</div>
及其上的事件
events: {
'click .test': 'myFunc',
},
它打开对话框窗口,但在Internet Explorer v9和v10下,页面滚动到顶部。调试后我无法跟踪问题。
我还试图在点击时滚动到链接,这是代码:
var x = (window.pageXOffset !== undefined) ? window.pageXOffset : (document.documentElement || document.body).scrollLeft,
y = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body).scrollTop;
这也行不通。 有什么想法吗?
更新
问题不在Backbone中,问题在于扩展jQuery焦点功能。请看一下:
var originalFocus = $.fn.focus;
$.fn.focus = function () {
if (this.hasClass('no-scroll')) {
var x = (window.pageXOffset !== undefined) ? window.pageXOffset : (document.documentElement || document.body).scrollLeft,
y = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body).scrollTop;
originalFocus.apply(this, arguments);
window.scrollTo(x, y);
} else {
return originalFocus.apply(this, arguments);
}
};
在其他浏览器中它工作得很好,但不是在IE中,似乎在应用IE后没有得到scrollTo ..
答案 0 :(得分:0)
我认为这可能是一个比你期望的更简单的问题。如果你上面发布的代码就是一切,那么我可以指出一个问题。
在您的事件对象中,如果行后没有任何内容,则不能在行后面使用逗号。所以删除多余的逗号,
events: {
'click .test': 'myFunc'
}
同样,你可能已经减去了代码,所以我的观点是无效的,但建议这些东西总是安全的!