gpt4 book ai didi

javascript - jQuery 加载和更改

转载 作者:行者123 更新时间:2023-11-28 19:42:37 24 4
gpt4 key购买 nike

我有一个“test.html”和一个“test.php”文件。

“test.html”:

<html>
<head>
<script type="text/javascript" src="/js/jquery-1.8.2.js"></script>
</head>
<body>
<p>Hello</p>
</body>
</html>

<script type="text/javascript">
$(function() {
$("p").on('click', function() {
$(this).load("test.php");
$(this).off();
});
});
</script>

<script type="text/javascript">
$(function() {
$("#sel_1").on('change', function() {
alert("SELECT changed!");
});
});
</script>

还有“test.php”:

<?php
echo "<select id='sel_1'>";
echo "<option>one</option>";
echo "<option>two</option>";
echo "<option>three</option>";
echo "</select>";
?>

当我单击“p”项(Hello)时,jQuery 会将新内容加载到“p”中。

但是当我更改选择的项目时,我想看到警报消息,但它不会出现。我该如何解决这个问题?

最佳答案

正如其他人提到的,您需要使用事件委托(delegate)。

这是一个 small example :

html:

<div>
Hello
</div>

<button> Add Content </button>

JavaScript:

$(function () {
$("button")
.on('click', function () {
$("div")
.append(getSelect());
});

$("div")
.on('change', '.mySelects', function () {
alert('select changed!');
});
});

function getSelect() {
return $("<select></select>")
.addClass("mySelects")
.append($("<option></option>")
.html("abc")
.val("1"))
.append($("<option></option>")
.html("def")
.val("2"));
}

关于javascript - jQuery 加载和更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24805740/

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