【问题标题】:jQuery does not work anymore after re-rendring any RichFaces component重新渲染任何 RichFaces 组件后,jQuery 不再工作
【发布时间】:2013-06-27 12:57:38
【问题描述】:

我有一个包含以下组件的页面:

  • 1 个按钮
  • 1个使用jQuery的下拉列表
  • 1 个按钮,其点击事件使用 jQuery 更改文本框值
  • 悬停时显示另外两个按钮

如果我更改下拉值或按下按钮,则页面将由 ajax 重新呈现。之后,jQuery 不再工作。如果我刷新页面,那么 jQuery 工作正常。

这是怎么引起的,我该如何解决?

【问题讨论】:

  • 尝试将您的 jquery 代码(我猜是在页面就绪时调用或其他什么)放入一个函数并调用该函数 oncomplete 的按钮(如果您使用 a4j:commandButton

标签: jquery jsf richfaces


【解决方案1】:

当新元素出现在页面上时,它们没有您之前拥有的事件绑定(例如 $('.menu').click...)。重新渲染页面后,您需要再次执行这些操作。来自文档:

事件处理程序仅绑定到当前选定的元素;当您的代码调用 .on() 时,它们必须存在于页面上。为确保元素存在并且可以被选择,请在页面 HTML 标记中的元素的文档就绪处理程序内执行事件绑定。如果将新 HTML 注入页面,请在将新 HTML 放入页面后选择元素并附加事件处理程序。

http://api.jquery.com/on/

【讨论】:

    猜你喜欢
    • 2013-01-03
    • 2011-12-23
    • 2011-03-12
    • 2022-08-18
    • 2012-02-13
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2018-08-12
    相关资源
    最近更新 更多