如何解决Uncaught RangeError:jquery中超出了最大调用堆栈大小 [英] how to solve Uncaught RangeError: Maximum call stack size exceeded in jquery

查看:302
本文介绍了如何解决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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆