如何解决Uncaught RangeError:jquery中超出了最大调用堆栈大小 [英] how to solve Uncaught RangeError: Maximum call stack size exceeded in jquery
本文介绍了如何解决Uncaught RangeError:jquery中超出了最大调用堆栈大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好,我有一个使用jquery实现的网格单元格方法,如下所示
function usercellclick (){
$( #<%= dgv_buslayout.ClientID%> tr :has(td))。click( function (e){
var selTD = $(e.target).closest( td);
var $ target = $(e.target);
if (!$ target.is (' input:checkbox')){
$($ target).find(< span class =code-string>' input:checkbox')。each( function (){
if (!$( this )。prop(' disabled')){
if ( this .checked){
this .checked = false ;
getseats();
}
其他 {
此 .checked = 真跨度>;
getseats();
}
}
})
}
});
});
function getseats(){
seatCheckUncheck( document .getElementById( <%= txtselectedseats.ClientID%>), document .getElementById( <%= txtseatcount.ClientID%>));
OnSuccess();
}
function OnSuccess(){
var seatsCount = < span class =code-sdkkeyword> document .getElementById( <%= txtseatcount.ClientID% >跨度>)值;
if (seatsCount == 0 ){
var row = $( [id * = dgv_passengerdetails] tr:last)。clone( true );
$( [id * = dgv_passengerdetails] tr)。not($(< span class =code-string> [id * = dgv_passengerdetails] tr:first-child))。remove();
$( td,row).eq( 0 )。html(' ');
$( [id * = dgv_passengerdetails])。append(row);
}
其他 {
var row = $( [id * = dgv_passengerdetails] tr:last)。clone(真跨度>);
$( [id * = dgv_passengerdetails] tr)。not($(< span class =code-string> [id * = dgv_passengerdetails] tr:first-child))。remove();
var seats =( document .getElementById( <%= txtselectedseats.ClientID%>)。value)。split( ,);
for ( var count = 0 ; count< seatsCount; count ++){
$( td,row ).eq( 0 )。html(seat [count]);
$( [id * = dgv_passengerdetails])。append(row);
row = $( [id * = dgv_passengerdetails] tr:last)。clone ( true );
}
}
}
当我点击继续6 7次它抛出异常因为最大调用堆栈大小超过
如果我删除函数OnSuccess()的else部分,那么它工作正常。帮我,thanx提前
解决方案
( # <%= dgv_buslayout.ClientID%> tr:has(td))。click( function (e){
var selTD =
(e.target).closest( < span class =code-string> td);
var
target =
Hello all, i have a grid cell click method implemented using jquery as follows
function usercellclick() {
$("#<%=dgv_buslayout.ClientID%> tr:has(td)").click(function (e) {
var selTD = $(e.target).closest("td");
var $target = $(e.target);
if (!$target.is('input:checkbox')) {
$($target).find('input:checkbox').each(function () {
if (!$(this).prop('disabled')) {
if (this.checked) {
this.checked = false;
getseats();
}
else {
this.checked = true;
getseats();
}
}
})
}
});
});
function getseats() {
seatCheckUncheck(document.getElementById("<%= txtselectedseats.ClientID %>"), document.getElementById("<%=txtseatcount.ClientID %>"));
OnSuccess();
}
function OnSuccess() {
var seatsCount = document.getElementById("<%= txtseatcount.ClientID %>").value;
if (seatsCount == 0) {
var row = $("[id*=dgv_passengerdetails] tr:last").clone(true);
$("[id*=dgv_passengerdetails] tr").not($("[id*=dgv_passengerdetails] tr:first-child")).remove();
$("td", row).eq(0).html('');
$("[id*=dgv_passengerdetails]").append(row);
}
else{
var row = $("[id*=dgv_passengerdetails] tr:last").clone(true);
$("[id*=dgv_passengerdetails] tr").not($("[id*=dgv_passengerdetails] tr:first-child")).remove();
var seats = (document.getElementById("<%= txtselectedseats.ClientID %>").value).split(",");
for (var count = 0; count < seatsCount; count++) {
$("td", row).eq(0).html(seats[count]);
$("[id*=dgv_passengerdetails]").append(row);
row = $("[id*=dgv_passengerdetails] tr:last").clone(true);
}
}
}
when i click continue 6 7 times it throws an exception as Maximum call stack size exceeded
if i remove the else part of function OnSuccess() then it works fine. help me, thanx in advance
解决方案
("#<%=dgv_buslayout.ClientID%> tr:has(td)").click(function (e) { var selTD =
(e.target).closest("td"); var
target =
这篇关于如何解决Uncaught RangeError:jquery中超出了最大调用堆栈大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文