为后加的html元素绑定事件需要用on$("").on("click",function(){alert("ok");});

解决方案 »

  1.   

                $(".room").on("click",function () {
                    alert('OK');
                    //alert($(this).html());
                });
      

  2.   

    又GOOGLE了一遍,似乎是由於新增元素绑定事件的问题,改成用LIVE绑事件,但是依然无效$(".room").die().live("click", function () {
                    alert('OK');
                    //alert($(this).html());
    });
      

  3.   

    绑定事件的次序有点小问题,先append然后绑定事件
    success: function (data) {
                        //$('#div_room_container').empty();
                        var myarray = $.parseJSON(data);
                        $.each(myarray, function (i, item) {
                            $('#div_room_container').append(
                                "<div class='room' id='" + item.roomid + "'>" + item.room_cname + "</div>"
                            );
                         $(".room").click(function () {//事件绑定放到这里,原因是没有新append的没有绑定事件
                    alert('OK');
                    //alert($(this).html());
                });                    })
      

  4.   

    按照datiexiong的改法OK了。但是有個疑問為甚麼這個綁定事件一定要卸載AJAX的囘調函數裏面?我寫在AJAX FUNCTION外面卻不行?
      

  5.   

    对于动态生成的元素,要用live来绑定事件,或者delegate$(".room").live('click',function () {
                    alert('OK');
                    //alert($(this).html());
                });
     
      

  6.   

    因为ajax是异步执行的,js不会等到你ajax语句执行完成再执行下一步语句
      

  7.   

    对的,这楼说的很对,动态生成元素不能直接绑定click ,要用live 或者 delegate 
      

  8.   

    live是在哪个版本之后就被移除了。。要用on..
      

  9.   

    给新添加的div添加一个新的class,然后给这个class绑定事件
      

  10.   

    用了ajax还不知道什么事异步。。