1

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

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

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

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

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

如果您提供任何提示或进一步的反馈,我将不胜感激。也许你也有一个关于如何重新思考当前架构的解决方案。

问候,奥利弗

4

2 回答 2

1

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

于 2010-03-28T20:13:56.863 回答
0

如果我对您的理解正确,您正在click为链接分配一个事件,将事件留href在原地并准备触发。这是非常不明智的,因为click当用户单击链接时,任何 javascript 事件的执行时间都是有限的,而且是任意的。很可能是不同的浏览器以不同的方式处理这个问题——无论如何,这是错误的方法。你永远不能确定你的行动得到了完整的执行。

通常的方法是让clickevent return false,防止链接的默认操作触发,并location.href = this.href在一切完成后放松。

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

于 2010-03-28T20:10:37.647 回答