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

$('#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(...

有任何想法吗?

附言此live()调用仅在jQuery文档加载($(function(){...});)内

最佳答案

如果使用one,则应解决此问题。

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

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

10-09 20:07