Jquery 一个按钮的单击处理程序由于另一个按钮的单击处理程序发生更改而停止工作

Jquery 一个按钮的单击处理程序由于另一个按钮的单击处理程序发生更改而停止工作,jquery,Jquery,更新:这是一个丢失的),我在下面的评论中指出了位置 我有一个页面,其中有一个id为#createButton的按钮,还有几个类为.testButton的按钮 我有一个用于#createButton的点击处理程序和另一个用于.testButton的点击处理程序 出于某种原因,当我向#createButton的单击处理程序添加代码块时,.testButton的单击处理程序停止工作。我已经在下面用注释指出了特定的代码块 为什么一个按钮的点击处理程序会因为另一种按钮的点击处理程序的更改而停止工作 $(d

更新:这是一个丢失的
,我在下面的评论中指出了位置

我有一个页面,其中有一个id为
#createButton
的按钮,还有几个类为
.testButton
的按钮

我有一个用于
#createButton
的点击处理程序和另一个用于
.testButton
的点击处理程序

出于某种原因,当我向
#createButton
的单击处理程序添加代码块时,
.testButton
的单击处理程序停止工作。我已经在下面用注释指出了特定的代码块

为什么一个按钮的点击处理程序会因为另一种按钮的点击处理程序的更改而停止工作

$(document).on('click','#createButton',function(e){

    if(invalidated == 0 && filledEmbeds > 0){           

        //this code block is causing the problem
        $('.embedContainer').each(function(i, obj) {

        } //Update I was missing a closing paranthesis ) here.

        //some code

    }

    e.preventDefault();
});


$(document).on('click','.testButton',function(e){

        //some code

        e.preventDefault();
});
更新:在下面添加HTML:

<div id='embedContainer1' class='embedContainer'>
<textarea name='textareaName[]' id='textareaEmbed1' class='textareaEmbed'></textarea >
</div>
<button class='button testButton' id='testButton1'>Test code</button>


<div class='row item'>
<input type="submit" class="button" value="Create" id="createButton">
</div>

测试代码

我认为您应该使用标准选择器并添加onClick回调

$('#id').on('click', function(){});
这样做的方式如下:

$(document).on('click','.testButton',function(e){});

您正在绑定到
文档
元素。当您再次注册它时,它将覆盖
文档上的第一个事件处理程序。

我认为您应该使用标准选择器并添加onClick回调

$('#id').on('click', function(){});
这样做的方式如下:

$(document).on('click','.testButton',function(e){});

您正在绑定到
文档
元素。当您再次注册它时,它将覆盖
文档上的第一个事件处理程序。

您错过了结束
在“每个”操作之后。
我刚刚添加了一个警报,以确保这些处理程序已启动

$(document).on('click','#createButton',function(e){
        alert("A");
    if(invalidated == 0 && filledEmbeds > 0){           

        //this code block is causing the problem
        $('.embedContainer').each(function(i, obj) {

        });

        //some code

    }

    e.preventDefault();
});


$(document).on('click','.testButton',function(e){
                alert("B");
        //some code

        e.preventDefault();
});

添加

您错过了结账
在“每个”操作之后。
我刚刚添加了一个警报,以确保这些处理程序已启动

$(document).on('click','#createButton',function(e){
        alert("A");
    if(invalidated == 0 && filledEmbeds > 0){           

        //this code block is causing the problem
        $('.embedContainer').each(function(i, obj) {

        });

        //some code

    }

    e.preventDefault();
});


$(document).on('click','.testButton',function(e){
                alert("B");
        //some code

        e.preventDefault();
});

添加

请共享您的HTML可能会出现语法错误,JS停止执行。你的控制台有错误吗?@YeldarKurmangaliyev,太棒了。这确实是一个语法错误,它所需要的只是检查控制台。谢谢你的提醒@user1883050下面是我的解决方案,它对您有帮助吗?我看到它在工作-->,并且)这是固定的?请共享您的htmlProbably,您会遇到语法错误,JS会停止执行。你的控制台有错误吗?@YeldarKurmangaliyev,太棒了。这确实是一个语法错误,它所需要的只是检查控制台。谢谢你的提醒@user1883050下面是我的解决方案,它对您有帮助吗?我看到它在工作-->,并且)这是固定的?可能元素是实时加载的,或者不总是present@kajyr这是正确的,有些按钮是动态加载的。可能元素是实时加载的,或者并不总是动态加载的present@kajyr没错,有些按钮是动态加载的。