gpt4 book ai didi

javascript - jquery 创建选择,并在更改时触发

转载 作者:行者123 更新时间:2023-11-30 13:29:54 25 4
gpt4 key购买 nike

我似乎无法让它工作。我正在使用 jquery 创建一个 html 选择,我希望在它的值发生变化时执行一些代码。

代码如下:

<script type ="text/javascript">

var firstweddingturn = '400';

$('#weddingturn').change(function() {

alert ("Wedding select change triggered!");

//var wedturn = $('#weddingturnselectid').val();
//$('#div3').append('<br>Wedding turn selected, ' + wedturn + '</br>')

});


$(document).ready(function() {

var html = [];
html[html.length] = '<select name="weddingturn" id="weddingturn">';
var a = firstweddingturn;
var b = Number(firstweddingturn) + 16;
while (a < b) {
// do some code
html[html.length] = '<option name="asdf" value = "1">' + a + '</option>';
a++;
} // end while
html[html.length] = '</select>';
$('#div1').append(html.join(''));

});
</script>

我做错了什么?

最佳答案

您需要使用 .delegate() (或 .live() )因为您正在动态添加选择。当您使用 .change() 附加 onChange 处理程序时它仅附加到<​​strong>现有 匹配元素,而不是以后添加的元素。要将事件附加到所有匹配元素,包括后来添加到页面的元素,您可以使用 .delegate()函数,像这样:

$('body').delegate('#weddingturn','change', function(){
alert('Wedding select changed to ' + $(this).find('option:selected').val() );
});

但是,正如一些人指出的那样,您只需在添加 <select> 之后立即附加事件处理程序即可。到 DOM。这样,您仍然可以使用 .change()并且您的代码应该运行得更快。

关于javascript - jquery 创建选择,并在更改时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7126429/

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