onchange无法在jquery中工作appendTo()

时间:2014-06-22 07:39:39

标签: javascript jquery select onchange appendto

我是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()来解决问题。

1 个答案:

答案 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函数定义有一些无效的字符串结束引号。