点击行为 - IE和FF的差异?

时间:2010-03-28 19:55:02

标签: jquery internet-explorer firefox click behavior

我刚刚得出的结论是,我目前正在处理的项目可能在功能上存在“逻辑”错误。

目前我正在使用PHP / MySQL和JQuery的服务器技术。 在页面内有一个标记链接引用

<a href="contentpage?page=xxx">next step</a>

现在,痛点似乎是同一元素上给定的jquery click事件。内容是使用php session命令通过另一个php脚本保存页面的(当前)内容( - &gt;表单元素)。 出于任何原因,IE可以在执行标准html命令之前处理Jquery的click事件,该命令使用新的page参数再次重新加载当前页面。通过使用FF,行为是不同的。我假设,FF首先执行html命令,然后执行处理click事件的javascript代码。因此,此处的结果集错误地分别为空。

我现在的问题是你是否有同样的经历以及你如何处理/解决这个问题。

我会感谢您的任何提示或进一步的反馈。也许你也有一个关于如何重新思考当前架构的解决方案。

此致 奥利弗

2 个答案:

答案 0 :(得分:1)

实际上firefox会在超链接执行重定向操作之前提升事件并执行附加到它的命令,可能在执行命令时发生错误并且IE允许它完成其操作而firefox抛出错误和jQuery函数块处理它你不会注意到抛出异常。 使用经典的onclick事件制作一个测试按钮并测试你的函数,看看它是否在firefox中运行

答案 1 :(得分:0)

如果我理解正确,您将为该链接分配click个事件,并保留href并准备开火。这是非常不明智的,因为当用户点击链接时,click事件中的任何javascript执行的时间是有限的,并且是任意的。很可能不同的浏览器以不同的方式处理它 - 无论如何,这是错误的方法。您永远无法确定您的行为是否已完全执行。

通常的做法是设置click事件return false,防止链接的默认操作触发,并在完成所有操作后执行轻松的location.href = this.href

如果您使用Ajax发送一些数据,那么将location.href部分放入Ajax调用的success回调中。这样,您就可以100%确定数据是否已发送。