2013-08-15 2 views
2

이 문제는 js 내부의 무한 루프 때문에 발생하는 것으로 알고 있지만 그 이유는 설명 할 수 없습니다. 행을 클릭하여 같은 행의 버튼을 트리거하고 싶습니다. 다음 JQuery를 시도하고 있지만 행을 클릭하면 행 클릭 함수 내부의 무한 루프로 끝납니다. 왜 그런가요?잡히지 않은 RangeError : 최대 호출 스택 크기를 초과했습니다. Chrome JS 오류

$(document).on('pageinit', function (event) { 
    bindRowClick(); 
}); 

function bindRowClick() { 
    $('.orderTable').find('tr').click(function() { 
     var btnView = $(this).find('td.tdViewOrder').find('input[type=submit]:first'); 
     btnView.trigger("click"); 
    }); 
} 

는 내가 그 아주 일반적인 질문입니다 알고 <tbody>

<tbody> 
    <asp:Repeater ID="rptrOrderView" runat="server" OnItemDataBound="rptrOrderView_ItemDataBound" OnItemCommand="rptrOrderView_ItemCommand"> 
     <ItemTemplate> 
      <tr class="hand"> 
       <td class="title"> 
        <asp:Label runat="server" ID="lblTdOrderNum"></asp:Label> 
       </td> 
       <td class="tdViewOrder"> 
        <asp:Button runat="server" ID="btnViewOrder" Text="View" CssClass="btnViewOrder" SkinID="btnViewMiniB" CommandName="ViewOrder" /> 
       </td> 
      </tr> 
     </ItemTemplate> 
    </asp:Repeater> 
</tbody> 

내부 class=".orderTable"있는 테이블과 중계기를 가지고,하지만 난 여전히 내 문제를 해결하지 않았습니다.

내 클릭 핸들러에 event.stopPropagation();을 추가 한 지금 노력하고 있습니다

솔루션. 사이클에 갈 수있는 모든 일의 원인 - btnView.click가 전파 결국 tr의 클릭 이벤트가 발생하기 때문에

$(document).on('pageinit', function (event) { 
    bindRowClick(); 
    $('.btnViewOrder').click(function (event) { 
     event.stopPropagation(); 
    }); 
}); 

답변

2

이 가장 확실히입니다.

(질문에없는)의 클릭 핸들러에서 event.stopPropagation()으로 전화하면됩니다.

+0

니스 나는 내 pageinit 이벤트에 이것을 추가했으며 지금은 작업 중입니다. 많은 감사합니다! :) –

관련 문제