简体   繁体   English

如何处理将元素添加到页面的事件?

[英]How do I handle the event of an element getting added to the page?

I have an app where clicking a link brings up a modal. 我有一个应用程序,单击链接即可显示模式。 In the modal is a form. 在情态中是一种形式。 I need to monitor for that form's submission. 我需要监视该表单的提交。

I'm attaching a click handler in my JS like so: 我在JS中附加了点击处理程序,如下所示:

$('.vex-dialog-form :submit').click (event) ->
    alert "hi"

That alert isn't firing, I believe it's because I need to attach some kind of event handler for that modal loading then put the submit event inside of that. 该警报不会触发,我相信是因为我需要为该模式加载附加某种事件处理程序,然后将Submit事件放入其中。

Any suggestions on how to go about this? 关于如何进行此操作有什么建议吗?

you need event delegation for dynamically added DOM. 您需要event delegation才能动态添加DOM。 use .on() : 使用.on()

 $('.vex-dialog-form').on('click',':submit',function(){
   alert("hi");
 });

if parent .vex-dialog-form is also getting added dynamically, then use: 如果父.vex-dialog-form也被动态添加,则使用:

 $(document).on('click','.vex-dialog-form :submit',function(){
   alert("hi");
 });

Try this way: 尝试这种方式:

$(document).on('click', '.vex-dialog-form :submit', function(){
    alert('hi');
});

In this case document is waiting for click and after it gets clicked, jQuery finds out whether your submit button is clicked or not 在这种情况下, document正在等待单击,并且在单击之后,jQuery会查找是否单击了提交按钮。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将 Javascript 事件处理程序注册到尚未添加到页面的元素 - How do I register a Javascript event handler to an element that hasn't been added to the page yet 如何使用JQuery在动态添加的元素上调用事件 - How do I call event on a dynamically added element with JQuery 如何追踪事件监听器的添加位置? - How do I track down where event listener is getting added? 如何让一个事件监听器处理通过javascript添加到我的html的元素? - How do I get an event listener to work on an element that is added to my html via javascript? 如何处理页面加载时尚未加载的元素的事件 - how should I handle an event for an element that has not yet been loaded when the page is loaded 在获取元素的边框宽度之前,如何确保添加了一个类? - How do I make sure a class is added before getting the border width of the element? 使用JavaScript或JQuery,如何确定将DOM元素添加到页面的时间? - Using JavaScript or JQuery how do I determine when a DOM element is added to the page? 在Greasemonkey / javascript中,如何处理添加到页面的新元素? - In Greasemonkey/javascript, how can I handle new elements added to page? 如何处理元素中的鼠标事件,而不是处理其中一个子元素? - How do I handle a mouse event within an element, but not on one of its children? 未将事件侦听器添加到div元素 - Event Listener not getting added to the div element
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM