gpt4 book ai didi

javascript - jQuery:click function() ready 在加载函数后不起作用

转载 作者:行者123 更新时间:2023-11-30 13:47:51 26 4
gpt4 key购买 nike

在 jQuery 3.2.1 中,如果我在加载函数之后构建复选框,当我单击该复选框时,点击功能将不起作用。

如果我之前构建复选框进行测试,它会起作用!

如何编写代码,以便在加载函数中动态构建复选框后单击函数起作用?

<div id="idcheckbox">
</div>


$(window).on('load', function () {
$("#idcheckbox").append("<div class='custom-control custom-checkbox custom-control-inline'><input type='checkbox' class='custom-control-input' id=" + identifiant + " value=" + url + "><label class='custom-control-label' for=" + identifiant + ">" + url + "</label></div>");
});

$(document).ready(function () {

$("input[type='checkbox']").on('change', function () {
alert("0000");
});

$("input[type='checkbox']").on('click', function () {
alert("1111");
});

//solution
$("#idcheckbox").on("click", "input[type='checkbox']", function () {
if ($("input[type='checkbox']").is(':checked')) {
alert("jQuery checked");
} else {
alert("jQuery no checked");
}
});


});


最佳答案

您在 document.ready 上绑定(bind)事件,然后在 window.load 上构建控件,因此它不会工作,因为事件已经与现有控件绑定(bind)。如果您正在制作新控件,则需要在将控件添加到 DOM 之后添加它。

var identifiant = "dynamic",
url = "www.google.com";
var counter = 1;
$(window).on('load', function() {
dynamicControl();
});

function dynamicControl() {
var id = identifiant + counter;
$("#idcheckbox").append("<div class='custom-control custom-checkbox custom-control-inline'><input type='checkbox' class='custom-control-input' id=" + id + " value=" + url + "><label class='custom-control-label' for=" + id + ">" + url + "</label></div>");
$("#" + id).on('change', function() {
alert('dynamic alert')
});
counter++;
}
$(document).ready(function() {

$("input[type='checkbox']").on('change', function() {
alert("0000");
});

$("input[type='checkbox']").on('click', function() {
alert("1111");
});
$("#Dynamic").on('click', dynamicControl);

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="idcheckbox">
</div>
<input type='button' id='Dynamic' value='Add new checkbox'/>

关于javascript - jQuery:click function() ready 在加载函数后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58931822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com