1
$(".btn_tab").click(function() { 
        var ids = new Array();
        $i=0;
        $(this).ajaxSuccess(function(e) {
            alert($i);
            $( ".tab-content .active table tbody tr td a.elusive-align-justify" ).each(function() {
                $url = $(this).attr('href');
                //console.log($url);

                var divided = $url.split("/");
                var id = divided[2];

                //console.log(id);
                ids.push(id);   
            });
                console.log(ids);

                $i++;
        });
  • 最初のタブでは、アラート 0 が表示されます。
  • 2 番目のアラート 0、アラート 1、
  • 3 番目のアラート 0、アラート 1、アラート 2 など。

正解は常にアラート 0 である必要があります

クリックごとに1つのxhrリクエストしか実行しないため、問題はイベントリスナーに関連していると思います。

使用this.removeEventListener(e);するとエラーが発生し、すべて正常に動作します。return falsereturnまたはthis.removeEventListener('click', e, false);動作しません。

何か案が?

4

1 に答える 1

0

ajaxSuccessはイベント リスナーであり、クリックするたびに新しいリスナーをバインドしています。クリック ハンドラの外に移動します。

于 2013-09-19T13:56:57.100 に答える