3
<?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> 

这是一个简单的 JSF 页面,脚本中有 JQuery 代码。

当我运行时,页面正在正确加载。但是,它没有调用 JQuery 脚本。

我不知道为什么......任何人都可以提出做错了什么吗?

谢谢你的建议。

4

1 回答 1

2

您应该删除包含 jQuery 的脚本标记。

Primefaces 与 jQuery 捆绑在一起,因此如果您在 web.xml 配置文件中正确配置 Primefaces Resources servlet,那么它将自动包含在您的所有网页中。

编辑:

此外,您不能使用 $ 字符在 JSF 页面上调用 jQuery,因为这是表达式的保留字符。您必须以长格式调用 jQuery...

jQuery('.example').click();

编辑2:

此外,尽量不要同时将 Javascript 与单引号和双引号混合使用。

        alert('hi');
        var txt1 = "<p>Text.</p>";

选择一个引号字符并坚持下去。这是一个很好的做法。

于 2012-10-19T11:54:51.073 回答