为什么JQuery不能在JSF(Primefaces)中工作 $j=jQuery.noConflict(); 函数appendText(){ 警报(“hi”); var txt1=“
文本。”; var txt2=$j(“”).text(“text”); var txt3=document.createElement(“p”); txt3.innerHTML=“文本。”; $j(“p”)。追加(txt1、txt2、txt3); } 函数appendList(){ var item1=“为什么JQuery不能在JSF(Primefaces)中工作 $j=jQuery.noConflict(); 函数appendText(){ 警报(“hi”); var txt1=“,jquery,jsf,primefaces,Jquery,Jsf,Primefaces,文本。”; var txt2=$j(“”).text(“text”); var txt3=document.createElement(“p”); txt3.innerHTML=“文本。”; $j(“p”)。追加(txt1、txt2、txt3); } 函数appendList(){ var item1=“列表项””; var item2=$j(“”)。文本(“列表项”); var item3=document.createElement(“li”); item3.innerHTML=“列表项”;
感谢您的支持。您应该删除包含jQuery的脚本标记 Primefaces与jQuery捆绑在一起,因此如果您在web.xml配置文件中正确配置Primefaces资源servlet,那么它将自动包含在您的所有网页中 编辑:
此外,您不能使用$character在JSF页面上调用jQuery,因为这是表达式的保留字符。您必须以长形式调用jQuery
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<script src="/resources/js/jquery-1.7.2.js" ></script>
<script >
$j=jQuery.noConflict();
function appendText() {
alert('hi');
var txt1 = "<p>Text.</p>";
var txt2 = $j("<p></p>").text("Text.");
var txt3 = document.createElement("p");
txt3.innerHTML = "Text.";
$j("p").append(txt1, txt2, txt3);
}
function appendList() {
var item1 = "<li>List item</li>";
var item2 = $j("<li></li>").text("List item");
var item3 = document.createElement("li");
item3.innerHTML = "List item";
$j("ol").append(item1, item2, item3);
}
</script>
</h:head>
<h:body>
<f:verbatim>
<p>This is a paragraph.</p>
<ol>
<li>List item 1</li>
<li>List item 2</li>
<li>List item 3</li>
</ol>
<button id="btn1" onclick="appendText()">Append text</button>
<button id="btn2" onclick="appendList()">Append list items</button>
</f:verbatim>
<h:form>
<h:commandButton value="jsf cmd btn APPEND TEXT" onclick="appendText()" id="btn3"/>
</h:form>
</h:body>
</html>
编辑2:
另外,尽量不要将Javascript与单引号和双引号同时使用
jQuery('.example').click();
警报('hi');
var txt1=“文本。”;
选择一个引号字符并坚持使用它。这是一个很好的做法。您的第一次编辑不正确。
$()
非常好用。嗨,巴卢斯克,你能在这里给我提建议吗?。《枫叶》的第一个答案是你具体问题的答案。只需使用PrimeFaces绑定的jQuery,而不是提供自己的jQuery,这只会产生冲突。maple的第一个答案是对您的具体问题的回答。“您必须以冗长的形式调用jQuery”这显然是错误的
alert('hi');
var txt1 = "<p>Text.</p>";