【发布时间】:2014-05-04 17:39:41
【问题描述】:
我知道已经有很多关于这个主题的问题,但我已经阅读了很多,但仍然无法让我的脚本工作......
我有一个非常基本的幻灯片,可以在这里看到:www.screations.net/wm(有 3 个幻灯片,我对所有 3 个都有同样的问题)
这是我用于导航的代码:
<a href="#"><img src="images/arrow_right.png" class="nextSlide" onclick="nextSlide();"/></a>
<a href="#"><img src="images/arrow_left.png" class="prevSlide" onclick="prevSlide();"/></a>
还有 jQuery(简化版):
function nextSlide()
{
$('.slide').eq(0).fadeIn(fadeSpeed);
event.preventDefault();
}
function prevSlide()
{
$('.slide').eq(0).fadeOut(fadeSpeed);
event.preventDefault();
}
现在这在 Chrome 上运行良好,但在 Firefox / IE 上,虽然脚本仍然有效,但它会重新加载页面。请问我该如何解决? :/
谢谢
【问题讨论】:
-
如果你不将事件传递给函数,你就不能指望
event.preventDefault()工作...... -
...如果您不希望函数使用
event参数。 -
如果您使用的是 jQuery,为什么不使用它来正确附加事件处理程序(而不是内联属性)?
-
这里真正的谜团是为什么该代码可以在 Chrome 中运行,但它不应该。这可能与您将事件处理程序附加到没有默认值的
img标记有关。event不是全局的,它应该作为参数传递给处理程序。function nextSlide(event) { /* now event actually exists! */ }。正如其他人提到的那样,使用onclick是一种不好的做法,给a标签提供一个ID 并使用jQuery 附加事件:<a id="next">、jQuery('#next').click(nextSlide);。
标签: javascript jquery firefox preventdefault