1

我使用光谱颜色选择器http://bgrins.github.io/spectrum/,问题是我从 html 文件中附加新元素

field_constructor.html

    <div id="constructor">
    <div class="label_constructor">
    <div class="label_text"><label>label:</label><input type="text"/></div> 
    <div class="label_backcolor"><label> backcolor :</label><input type="text" maxlength="6" size="6" class="colorpicker" value="000000" /></div>
    <div class="label_textcolor" ><label>textcolor:</label><input type="text" maxlength="6" size="6" class="colorpicker" value="000000" /></div>

jQuery代码

      $($champdiv).load("field_constructor.html #constructor");
      $("#form_content").prepend($champdiv);

并且 jquery 代码不会运行,直到我手动触发一些事件,例如

        $("body").on("mouseover",function(){

        $(".colorpicker").spectrum({
       color: "#f00"
       }); 
       });

或手动触发事件我尝试了许多解决方案,例如手动触发事件,但唯一有效的事件是 body mouseover 或 onclick 在具有相同类的字段上创建这样

 $input=$('<input type="text" maxlength="6" size="6" class="colorpicker"  value="000000" />'); 

这对浏览器来说会很重,请帮我解决我找不到好的解决方案

4

1 回答 1

2

查看 jQuery 加载函数的文档:http: //api.jquery.com/load/。您可以传递一个回调,该回调将在加载完成后触发,并且从那里您应该能够初始化颜色选择器(并且只有结果容器中的那些):

$('#result').load("field_constructor.html #constructor", function() {
   $("#result .colorpicker").spectrum({
       color: "#f00"
   }); 
});
于 2013-04-30T12:17:59.653 回答