Javascript window.parent jQuery选择器在IE8中不工作
下面的代码工作正常Javascript window.parent jQuery选择器在IE8中不工作,javascript,jquery,internet-explorer-8,css-selectors,Javascript,Jquery,Internet Explorer 8,Css Selectors,下面的代码工作正常 $('html').bind('mousewheel', function(event, delta) { window.parent.scrollBy(-120 * delta,0); return false; }); 但是这个没有,谁能告诉我为什么。我很想知道 $(window.parent).bind('mousewheel', function(event, delta) { window.parent.scrollBy(-120 * de
$('html').bind('mousewheel', function(event, delta) {
window.parent.scrollBy(-120 * delta,0);
return false;
});
但是这个没有,谁能告诉我为什么。我很想知道
$(window.parent).bind('mousewheel', function(event, delta) {
window.parent.scrollBy(-120 * delta,0);
return false;
});
我想澄清的是,
窗口
选择器在这种情况下也不起作用。问题可能是jQuery的事件处理程序包装器必须使用窗口.event
来检索IE中的当前事件。如果您从窗口a对窗口B中的事件设置处理程序,窗口A中的脚本将查看窗口A的窗口.event
,而事件实际发生在窗口B上
但可能还有更多的问题。跨窗口/框架脚本充满了困难,jQuery并不是专门为解决这些问题而设计的。为了使jQuery跨框架正常工作,您通常需要在两个窗口中都有一个jQuery实例,并且应该只使用相应的jQuery实例($)与每个窗口交互
eta重新评论:
好的,进一步研究了mouseweel
,我不知道你的代码在Firefox中是如何工作的(我当然不知道)。Firefox根本不支持mousewheel
事件;相反,它支持DOMMouseScroll
事件。另外,对于支持鼠标滚轮的其他浏览器,它应该绑定到DOM节点,而不是窗口。所以我想你要找的是:
if ('MouseScrollEvent' in window) {
$(document).bind('DOMMouseScroll', function(event) {
return scroll(event.detail*-40);
});
} else {
$(document).bind('mousewheel', function(event) {
return scroll(event.wheelDelta);
});
}
function scroll(d) {
window.scrollBy(-d, 0);
return false;
};
(但是,在WebKit中,当鼠标移出与视口宽度相对应的水平区域时,这将停止滚动。您可能更喜欢将事件绑定到更宽的元素,如div,如果它填充浏览器。)hi bobice,这种情况下只有一个窗口,我在处理程序中尝试了“window.event”而不是“event”,但它只在dreamweaver和IE8中产生语法错误。如果只有一个窗口,为什么要访问window.parent
?无论如何,delta属性通常会作为event.wheeldta
访问。但是,如果你有语法错误,你甚至没有走那么远!bobince你能看看我在上面的问题中包含的代码吗,这是你推断的吗。该代码在我添加.wheelDelta之后立即给了我语法错误。谢谢你没有将属性访问权放在函数参数列表中。它应该是function(event){
…window.scrollBy(event.wheelDelta*-120,0);
。我决定只使用工作版本,如果你有一个工作代码,为什么问题是为什么不工作的版本有故障?!