在首次回发全新部署后,Jscolor停止工作,但在重新加载回发后继续工作

时间:2013-06-05 13:56:52

标签: javascript jsf jscolor

有没有人能告诉我一些有助于JSF与Jscolor组件中的以下行为?

我有这个简单的xhtml代码:

<?xml version='1.0' encoding='UTF-8' ?>
    <!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:h="http://java.sun.com/jsf/html">
        <h:head>
            <title>RDFa test</title>
        </h:head>
        <h:body>    
            <script type="text/javascript" src="resources/js/jscolor/jscolor.js"/>
            <h:form>
                <h:commandButton class="color" value="ok"/>
                <h:commandButton value="server" type="submit" action="#{testBean.tmp}"/>
            </h:form>
        </h:body>
    </html>

TestBean.java:

@ManagedBean
@SessionScoped
public class TestBean implements Serializable {
    public TestBean() {}

    public void tmp() {
        System.out.println("SERVER!");
    }   
}

如果我进行第一次部署并单击“服务器”按钮,Jscolor将消失并且不起作用(这就像破坏页面上的javascript)!如果我然后重新加载页面并单击相同的按钮,Jscolor正常工作。服务器日志中没有异常,Firebug JS控制台也没有任何错误。这是怎么造成的,我该如何解决?

修改 我不是唯一一个在这个问题上徘徊的开发者。这里tyhand准确地描述了我的意思:http://www.tek-tips.com/viewthread.cfm?qid=1641380

请你告诉我发生了什么以及如何解决它?

2 个答案:

答案 0 :(得分:3)

最后我找到了解决方案。这太容易了!我必须在所有输入字段之前添加class ='color'(将文件绑定到jscolor)这段代码:

<script>jscolor.init();</script>

答案 1 :(得分:0)

我想在自定义DNN模块的更新面板内的转发器中使用jscolor。

我在这里看到的各种解决方案都没有奏效......我终于明白了。

在usercontrol中的HTML顶部: 使用&lt; dnn:DNNJsInclude ..... /&gt;指向你的jscolor.js文件,然后添加

<script type="text/javascript">


function pageLoad(sender, args) {

    $(".jscolor").each(function (i, obj) {

        var picker = new jscolor(obj);

    });
};