Javascript JQuery单击事件在引导模式下不工作

Javascript JQuery单击事件在引导模式下不工作,javascript,jquery,bootstrap-modal,Javascript,Jquery,Bootstrap Modal,我的页面中有以下代码行: <div id='data'>...</div> <a id='addMore' href='#'>Add more </a> 省略号表示用于防止默认设置和克隆的代码。我试着用警报进行测试。它仍然不起作用。我不知道为什么 我发现,如果我在标记中添加onClick='alert(…),它就会起作用 有人能帮忙吗 这是模态的HTML(如果有人帮助格式化,我不介意。我知道这很混乱): &时代; 添加电子邮件

我的页面中有以下代码行:

<div id='data'>...</div>      
<a id='addMore' href='#'>Add more </a>   
省略号表示用于防止默认设置和克隆的代码。我试着用警报进行测试。它仍然不起作用。我不知道为什么

我发现,如果我在标记中添加
onClick='alert(…)
,它就会起作用

有人能帮忙吗

这是模态的HTML(如果有人帮助格式化,我不介意。我知道这很混乱):


&时代;
添加电子邮件
接近
添加

我猜您的元素是在
jQuery.ready
事件之后添加到页面中的。你的代码在那个街区吗

$( document ).ready( $('#addMore').click (...) )

尝试事件委派-jQuery的
.on()
方法

如果事件不起作用,可能是因为您的标记
是在页面加载后添加的。您可以使用其父容器捕获事件(注意:加载页面时,父容器应该已经存在于DOM中)。试试这个:

$(document).ready( function () {
    //Search the parent class, id, or tag and then try to find the <a id="addMore"></a>  as a child
    $('.parent #addMore').on('click', function () {
        alert('addMore click event');
    });
    //Try too with the specific tag
    $('a#addMore').on('click', function () {
        alert('addMore click event');
    });
    //And try too with the specific tag
    $('a #addMore').on('click', function () {
        alert('addMore click event');
    });

});
$(文档).ready(函数(){
//搜索父类、id或标记,然后尝试作为子级查找
$('.parent#addMore')。on('单击',函数(){
警报(“添加更多单击事件”);
});
//也可以尝试使用特定的标记
$('a#addMore')。在('click',函数(){
警报(“添加更多单击事件”);
});
//并尝试使用特定的标记
$('a#addMore')。在('click',函数(){
警报(“添加更多单击事件”);
});
});

我希望这只是一个输入错误,但是在id属性之前,在a标记之后有一个双引号。在代码的第一部分中,它还可以

 <a" id="addMore" href="#">Add more&hellip;</a>


它可能会把事情搞砸…

这不是一个真正的答案,但它“神奇地”解决了这个问题。我将该页面的代码移到了另一个.js文件中,它成功了。前一个文件链接到许多页面。我想这就是问题的根源。这似乎很奇怪。

我希望这对你有帮助。我也有同样的问题,我只是在Jquery点击事件中添加了模态ID,这对我来说很有效。试试这个

$('#addEmailModal #addMore').click (...)

模态未准备好使用
$(文档)。准备好
功能。当它弹出时就准备好了。可能是这背后的原因(不过我不确定)。它对我有效,这就是我发布答案的原因。

我不小心将相同的id属性分配给了不同模式对话框中的两个不同按钮。更改此选项可修复此问题:

$(document).ready(function((){/*assign click to modal dialog buttons...

这就像预期的一样。

@StephenRios代码中有一个函数。我觉得没有必要写它,因为事件是问题所在,而不是在控制台中看到任何错误的功能人员?您在文档就绪处理程序中有jQuery代码吗?@Barmar如果这是原因,那么一定是发生了一些奇怪的事情,因为其他jQuery代码正在工作。此外,bootstrap使用jQuery,因此不应该有任何冲突。@Jay这正是我尝试的最后一段代码。它不工作。页面中是否有多个具有addMore id的元素?很抱歉,您的猜测是错误的。HTML已在页面上。这是一个引导模式。你能补充一些细节说明为什么这应该有效吗?只有代码的答案不是很有用,可能会被删除。更多详细信息会有所帮助。这个方法解决了我的问题,我相信我知道为什么这个方法有效,(它确实解决了我的问题)。通过在文档上绑定单击事件,每次在任何位置单击页面时,都会刷新其DOM列表,这意味着在文档发送就绪代码之后添加的任何内容现在都可用于
on()
。然后,中间的参数用于指定在
document.ready()
结束后添加的id/类。您可以像这样使用模态id来代替文档:
$('#模态id')。on('click','#addMore',function(){…})谢谢你提醒我这个语法。这真的很奇怪,有时是
$(“按钮[id^='dismissdtmodel_'])。在('click',函数(事件){…
工作正常,其他时候,我不得不使用
$(文档)。在('click',”按钮[id^='dismissdtmodel_'][id$='u model']),函数(事件){…
我希望我能更好地理解为什么,特别是当这两个都用于处理BS模态对话框上的“关闭”按钮的点击时。这对我来说是有效的,尽管在我的情况下,标签在页面加载后没有加载。事件委派不应该解决我的问题,但它确实解决了。“我的职责不是推理,我的职责只是不断地打探。”-林恩·约翰斯顿你知道,有时为了找到问题的解决方案,我们必须越来越深入地寻找原因。我很高兴这个解决方案能帮助你。
$('#addEmailModal #addMore').click (...)
$(document).on('click', '#addMore', function(){...});
$(document).ready(function((){/*assign click to modal dialog buttons...