如果我对jscolor(http://jscolor.com/)使用这样的技巧:

<div id="test-div"></div>


在javascript中,下一件事起作用:

$(document).ready(function () {
    $('#test-div').html('<input type="text" id="test_input" value="449944" class="form-control jscolor" />');
});


但另一个技巧不起作用:

$(document).ready(function () {
    setTimeout(function() {
        $('#test-div').html('<input type="text" id="test_input" value="449944" class="form-control jscolor" />');
    }, 1000);
});


如何发挥作用。我想在ajax中使用生成的颜色列表。
谢谢!

最佳答案

动态创建元素后,必须调用jscolor.installByClassName("jscolor")

jscolor.init()的工作原理相同,但由于某些原因,它不适用于所有人。

检查工作片段。



$(document).ready(function () {

    setTimeout(function() {
        $('#test-div').html('<input type="text" id="test_input" value="449944" class="form-control jscolor" />');
        jscolor.installByClassName("jscolor");
    }, 1000);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jscolor/2.0.4/jscolor.min.js"></script>

<div id="test-div"></div>

10-06 14:59