0

我制作了一个 ajax,它将制作一个输入表,值将来自 php,带有一个活动和活动按钮

   var counter_sub = 0 ;

     var html;
              $.ajax({
                        type:'POST',
                        url:'add_subject.php',
                   dataType:'json',
                       data:{'func_numbr':'2'},
                    success:function (data){
                       $.each(data, function(i, item) {

                        html = "<tr>";

                        html += "<td><lable>Subject: </label><input type='text' name='subject["+counter_sub+"]' value='"+data[i].subj_name+"'></td>";
                        html += "<td><input type='button' id='activate' name='active' class='button active' value='Active'> ";
                        html += "<input type='button' id='inactivate' name='active' class='button' value='Inactive'></td>";
                        html += "</tr>";
               $('#curr-elem-tble').append(html);

               counter_sub = counter_sub +1;
              });
                    }     
             });

我做了一个点击事件,它会提醒它旁边的输入值

$('.active').click(function (){

          var prev = $(this).parent().prev().find('input[type=text]');

            var val = $(prev).val();

          alert(val);
     });

但是当我单击它旁边的活动按钮时没有任何反应

继承人的html

               <div id="curr-elem-content">
                  <table id="curr-elem-tble">

                  </table>
                </div>
4

1 回答 1

1

click()将绑定到加载时所有存在的元素。请注意,如果您想使用 click() 动态添加元素,则必须使用 jQuery 的 live() 或 on() 方法...所以将代码更改为

$('.active').live('click', function (){

          var prev = $(this).parent().prev().find('input[type=text]');

            var val = $(prev).val();

          alert(val);
     });

现场看这里

于 2012-11-27T07:45:55.970 回答