jQuery 在 f :ajax 之后应用 css 类

标签 jquery css ajax jsf jsf-2

我环顾四周,无法直接回答我的基本问题。

我们有一个网站应用了一堆基本的 css 类到元素在 document.ready() 中使用 jQuery。一开始效果很好。

但现在我们也开始使用带有 facelets 的 JSF 2.0 并且有一些 f:ajax 标签 可以根据事件重新呈现部分页面。正如您可以想象的那样,重新渲染的部分显示时没有这些样式,因为在 ajax 调用期间不会再次调用 jQuery 函数。

我现在已经尝试过,发现您可以将一个事件添加到 f:ajax 并强制再次调用主要的 jQuery 函数。但这感觉不太优雅,我需要将它添加到所有 f:ajax 标签中。另外,我遇​​到了一些无法解释的行为。

所以我的问题是:

  1. 在 document.ready() 中应用样式类是否仍然有意义?还是在这种情况下是不好的做法?我应该简单地将类添加到元素吗?
  2. jQuery ajax 是 f:ajax 的可行替代品吗?

如有任何意见或帮助或指导,我们将不胜感激。

谢谢

最佳答案

I have now played around and found that you can add onevent to f:ajax and force the main jQuery function to be called again. But this doesn't feel very elegant and I need to add it to all f:ajax tags.

您可以使用 jsf.ajax.addOnEvent()将其应用于所有 <f:ajax>要求。另见 How to re-execute javascript function after form reRender?


Does it still make sense to apply style classes in document.ready()? Or is it bad practise in this instance? Should I simply add the classes to the elements?

确实是设计/思维问题。例如,你为什么不直接使用那些 jQuery 选择器而不是你打算添加的 CSS 类呢?要将 CSS 类添加到某些元素,您无论如何都必须使用 CSS 选择器来选择它们,对吗?将 CSS 选择器完全用于最终目的有什么问题?

在 Facelets 透视图中,您可以考虑创建 tagfiles减少代码样板。你可以包装 <h:inputText styleClass="some-specific-class">/WEB-INF/tags/inputText.xhtml并继续使用 <my:inputText>相反。


Is jQuery ajax a viable alternative to f:ajax?

这是可行的。甚至还有可用的开源示例,例如 PrimeFaces它是围绕 jQuery 和 jQuery UI 构建的。

关于jQuery 在 f :ajax 之后应用 css 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31950053/

相关文章:

php - 使用 AJAX 和 Jquery 使用 FPDF 创建 pdf

javascript - 使用 JavaScript 获取下拉选项的名称

javascript - contenteditable - 选择 2 个子段落并覆盖文本(Firefox 问题)

html - 创建了一个自定义 CSS 类,想要更改链接悬停颜色但它不起作用

css - block 不是内联的

jquery - 如何在固定宽度的div上设置div高度

javascript - 发布 Ajax 并在 Node 中获取空对象

jquery - 使用 jQuery 写入服务器上的文件?

javascript - 选择类别并将其应用于具有相同类别的多个 div

javascript - 如何使用 jquery 将 &lt;input type ="text"> 更改为 <tr>