javascript - 奇怪的冒泡问题

标签 javascript jquery ajax events event-bubbling

我不确定为什么会冒泡,但确实如此。想知道是否有人有任何想法?

$('#file_upload').live('submit',function(event){
        $('#file_upload').attr('action','io.cfm?action=updateitemfile&item_id='+$('.agenda-modal').attr('data-defaultitemid'));
        $('iframe').load(function(){
            $('.upload_output').empty();
            $livepreview.agenda({
                action:'get',
                id:$('.agenda-modal').attr('data-defaultitemid'),
                type:'item',
                callback:function(json){
                    for(x in json[0].files){
                        $('.upload_output').append('<li class="file-upload"><a target="blank" href="io.cfm?action=getitemfile&item_file_id='+json[0].files[x].item_file_id+'">'+json[0].files[x].file_name+'</a> <a style="color:red" href="#deletefile-'+json[0].files[x].item_file_id+'">[X]</a></li>');
                    }
                    console.log('callback');
                }
            });
            console.log('iframed');
        });
        console.log('go');
    });

因此,如果我上传文件,我会在控制台中看到以下内容:

go
iframe
callback

如果我连续第二次这样做:

go
iframed
iframed
callback
callback

三次:

go
iframed
iframed
iframed
callback
callback
callback

等等

我假设如果 live() 事件冒泡,“go”也会冒泡,但事实并非如此。我尝试了 event.stropPropagation 几乎在提交内部的所有地方,并且 .die() 连接到 $('#file_upload').die()。生活(... 像这样。

有什么想法吗?

附注这个 live() 调用就在 jQuery 文档加载中 ($(function(){...});)

最佳答案

如果您使用one,您的问题应该得到解决。

$('iframe').one("load", function() {

关于javascript - 奇怪的冒泡问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3392163/

相关文章:

javascript - 使用多个层的 OpenLayers 4.6.5 的性能限制

javascript - 加载延迟加载内容所需的JS脚本

ajax - 将在下拉列表中选择的值发布到 Controller

javascript - JQuery 只返回一个值

javascript - Django - 如何创建更新进度条?

javascript - 检测特定元素的位置

javascript - 如何删除 JavaScript location.pathname 返回值中的 "/"

javascript - 使用javascript如何检查字符串是否包含印地文字体?

javascript - 从中心将图像填充到 div 中

jquery - 使用 jquery 限制/计算 TextArea 中的字符数