我是jQuery的新手,并且一直在尝试使用select创建动态下拉菜单。但是我无法在appendTo中使用onChange。有什么建议吗?
<script>
$(function() {
var addDiv = $('#content');
var n = 1;
jq144('#add_match').live('click', function() {
$('<p ><select onchange = "showUser(this.value, "select_team_' + (n) + '")" name="select_team_' + (n) + '" id="select_team_' + (n) + '"><option value = "">Team 1</option><option value = "a">A</option> <option value = "b">B</option><option value = "c">C</option></select> </p>').appendTo(addDiv);
++n;
});
});
</script>
我也试过使用on()但是无法将参数传递给它。
这是showUser:
<script>
function showUser(str, select_name) {
var num = parseInt(select_name.substr(select_name.length - 1));
alert(num + 1);
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
$("select[id='select_team_" + (num + 1) + "']").html(xmlhttp.responseText).selectmenu( "refresh");
}
}
xmlhttp.open("GET","getplayers.php?q="+str.value,true);
xmlhttp.send();
}
</script>
最后,我能够使用.on()来解决问题。
答案 0 :(得分:0)
尝试用以下内容替换您的点击:
jq144('#add_match').live('click', function() {
$('<p ><select onchange ="showUser(this.value, select_team_"' + (n) + '") name="select_team_' + (n) + '" id="select_team_' + (n) + '"><option value = "">Team 1</option><option value = "a">A</option> <option value = "b">B</option><option value = "c">C</option></select> </p>').appendTo(addDiv);
++n;
});
这可能会对你有所帮助。你的onchange函数定义有一些无效的字符串结束引号。