gpt4 book ai didi

jquery - 未捕获的 RangeError : Maximum call stack size exceeded, Chrome JS 错误

转载 作者:行者123 更新时间:2023-12-01 04:12:53 26 4
gpt4 key购买 nike

我知道这是由我的js内部的无限循环引起的,但我无法解释为什么。我想单击一行来触发同一行上的按钮。我正在尝试以下 JQuery,但是当我单击一行时,我最终会在行单击函数内陷入无限循环。这是为什么?

$(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");
});
}

我有一张 table ,上面有 class=".orderTable" <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>

我知道这是一个很常见的问题,但我仍然没有解决我的问题。

解决方案

我已添加event.stopPropagation();到我的点击处理程序,现在正在工作。

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

最佳答案

这绝对是因为 btnView.click 向上传播并最终触发 tr 的点击事件 - 导致整个事件循环进行。

您需要做的是从 btnView 的点击处理程序中调用 event.stopPropagation() (问题中没有)。

关于jquery - 未捕获的 RangeError : Maximum call stack size exceeded, Chrome JS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18253431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com