jQuery在每次加载时加载多个对象实例

时间:2011-06-11 13:00:39

标签: jquery jquery-plugins

经过与jQuery countdown plugin的长期斗争后,我仍然无法解决它,但至少我知道它为什么会发生。

在我进一步解释之前,请先查看this example并尝试重现问题:

  1. 尝试点击 GMT 链接
  2. 倒数计时器将显示
  3. 接下来点击 GMT + 7
  4. GMT + 7 计时器会显示但有错误...
  5. 在第二次加载时,jQuery在这种情况下创建另一个实例,即计时器,并将其显示在同一个div中。如果你继续点击它,它将创建越来越多的对象。

    我该如何解决这个问题?我现在已经苦苦挣扎了5个小时 如何重置/杀死对象或其他东西。所以它不会崩溃。

    非常感谢你们的任何帮助。

    谢谢,伊万

1 个答案:

答案 0 :(得分:1)

检查您的示例

我可以看到你的Ajax请求返回了一些HTML以及一些创建新实例倒计时插件的脚本(文件准备好了吗?!?!)。

建议的解决方案

为什么不改为返回JSON数据并操纵已在浏览器窗口中加载/运行的现有倒计时插件?您似乎应该按此顺序运行这些功能:

  1. stopCountDown()
  2. setCountDown( /* target date data */ )
  3. startCountDown
  4. ,如countdown plugin documentation example中所述。

    我实际上尝试使用Firebug运行这三个函数,它正确地停止了重置并启动了相同的插件实例。

    我的建议是:您的Ajax请求应该返回targetDate对象的JSON,该对象可以直接与setCountDown()函数一起使用。