Jquery 使用.on()但数据呈倍数提交

Jquery 使用.on()但数据呈倍数提交,jquery,Jquery,在你给出解决方案之前。请阅读我的第一个问题 所以我的第一个问题都解决了。但数据呈倍数增长。例如:当我第一次单击时。它提交一次。当我再次单击时。它提交了两次。等如何修复它???非常混乱 这里是我的简单代码 $(document).on('click','.page-info',function(){ $('a[href|="#status-page"]').click(function(event){ //DO THE SUBMIT DATA HERE

在你给出解决方案之前。请阅读我的第一个问题

所以我的第一个问题都解决了。但数据呈倍数增长。例如:当我第一次单击时。它提交一次。当我再次单击时。它提交了两次。等如何修复它???非常混乱

这里是我的简单代码

$(document).on('click','.page-info',function(){
        $('a[href|="#status-page"]').click(function(event){
            //DO THE SUBMIT DATA HERE
            event.preventDefault();

            //alert('testing');

            //href=#page-{id}
            var n='#status-page'.length;
            n++;

            var href=$(this).attr('href');
            //pageid=get the href {id}
            //pageid=id
            var pageid=href.substr(n);

            //Change status on database
            $.get(CHANGE_STATUS+'/'+pageid);

            //Change value status to active/disable
            var selector='#status-page-'+pageid;

            var status=$(this).html();

            if(status=='Active'){
                status='Disable';
            }
            else
            {
                status='Active';
            }

            //Change status
            $(selector).html($(this).html());
            $(this).html(status);

            var theStyle=(status!='Active')?'isGood':'isBad';
            $(selector).removeClass('isBad isGood').addClass(theStyle); // This code didn't work too :((
        });


    });
这里是我的简单HTML

<tr class="page-info">
    <td>
        <span class="isAction"><a href="#status-page-50">Disable</a> | <a href="#">Delete</a></span>
        <h5><a href="#page-50">Project P</a></h5>
        <p><strong>Project P</strong> - </p>
    </td>
    <td>2011-11-07 03:19:24</td>
    <td>
        <span class="cms_Status isBad">
            Disable        </span>
    </td>
</tr>

| 
项目p-

2011-11-07 03:19:24 使残废
在我的页面上,我有一个表单,可以使用jQuery添加数据,如下所示:

  • 发布数据
  • 获取数据
  • 上次“.page info”之后的Appand数据

  • 您已在
    .page info
    元素上定义了一个单击处理程序,并在此处理程序中为
    元素添加了一个单击处理程序。因此,当您单击
    时,它的处理程序将被调用,然后事件“冒泡”到包含
    -并且
    上的处理程序继续向
    添加第二个单击处理程序。下次单击它时,将添加第三个单击处理程序,然后添加第四个,以此类推。这些多个处理程序不会相互替换,它们都保持活动状态,并依次调用

    通过添加
    event.stopPropagation(),可以阻止事件“冒泡”
    的处理程序中的code>,但实际上不会有多大帮助,因为单击
    中的其他位置仍会触发其单击,将更多处理程序添加到

    我不明白为什么您首先需要
    .info
    页面上的处理程序。你能解释一下吗?我的冲动是删除第1行和第5行,即代码的第一行和最后一行,从而删除
    .page info
    单击处理程序:

    1  $(document).on('click','.page-info',function(){   // <-- delete
    2     $('a[href|="#status-page"]').click(function(event){
    3         // many lines of your code here
    4     });
    5  });                                               // <-- delete this line
    

    1$(document).on('click','.page info',function(){//在我阅读stackoverflow的问题之前,这个问题已经解决了。所以为什么我使用on()。因为内容是动态的。我使用AJAX。所以如果我使用常规方法jQuery找不到动态id。所以我必须使用.on()或.live()方法来解决这个问题。但我还是得到了上面解释的另一个问题。但我自己解决了。谢谢您的参与。呵呵呵呵…@Kenjiro一旦您自己解决了,分享答案是一个很好的做法。。