如何在jquery中覆盖此代码

How to overwrite this code in jquery

本文关键字:覆盖 代码 jquery      更新时间:2023-09-26

下面是我的代码,当单击$('#mainNumberAnswerTxt').val(numberAnswer);上的"添加"按钮时,它将在文本框中显示数字。但我也有一行代码,当点击(btn‘button’)时,它会触发函数

 function addwindow(numberAnswer, gridValues, btn) { 
    $('#mainNumberAnswerTxt').val(numberAnswer);
    $('#btn'+gridValues).trigger('click');       
 }

由于该触发器,它触发该函数$('.gridBtns').on('click', function()。在这个功能中是这行代码

$('.answertxt', context).val(context.find('.answerBtnsOn').length > 0 ? context.find('.answerBtnsOn').length : '');,

这行代码检查单击gridBtn时打开了多少按钮,并在文本框中显示数字。但是上面的代码行覆盖了addwindow()函数中的$('#mainNumberAnswerTxt').val(numberAnswer);

示例:

如果有2个"#btns"已打开,但我单击"添加"按钮添加"答案数"列下显示的数字(假设这个数字是1),则它应该在文本框中显示数字1,该代码将影响$('#mainNumberAnswerTxt').val(numberAnswer);,但它显示的是数字2,因为该代码正在影响:$('.answertxt', context).val(context.find('.answerBtnsOn').length > 0 ? context.find('.answerBtnsOn').length : '');

如何在上面的示例中显示数字1而不是数字2

以下是文本框的html代码:

<input type="text" name="numberAnswer" class="numberAnswerTxt answertxt" id="mainNumberAnswerTxt" readonly="readonly" onChange="getButtons()" >

更新:

这是一个应用程序的演示。请按照以下步骤操作:

  • 步骤1:当你打开演示时,点击"打开网格"链接选择按钮"7"。这将显示一个文本框和7个字母按钮下面
  • 第二步:选择你选择下面的4个字母按钮。你会的看看当你打开一个字母按钮时,上面的文本框会计数
  • 步骤3:现在在左手边你会看到一个绿色加号按钮,点击它打开了一个模态窗口
  • 步骤4:在模态窗口中有一个搜索栏,键入"AAA",然后提交搜索,你会看到一堆行出现
  • 步骤5:在第一行中,您可以在"答案数量"栏下看到它包含数字1,单击此行中的"添加"按钮,模态窗口将关闭,但存在问题,您可以阅读下面

问题:

在"答案数量"文本框中,它应该显示数字1,但没有。

好吧,这个问题很令人困惑,但我想我已经明白你想要什么了:只需在mainNumberAnswerTxt中添加一个类或属性,即可被第二次点击事件忽略

function addwindow(numberAnswer, gridValues, btn) { 
    $('#mainNumberAnswerTxt').val(numberAnswer).attr('data-ignore',true);
    $('#btn'+gridValues).trigger('click');       
}

然后在你的$('.gridBtns').on('click',function()中,你只需检查(不知道你确切的html&js代码)

if(this).attr('data-ignore') != true {
    $('.answertxt', context).val(context.find('.answerBtnsOn').length > 0 ?      context.find('.answerBtnsOn').length : '');
}