Javascript jquerylive不';t按预期工作

Javascript jquerylive不';t按预期工作,javascript,jquery,ajax,load,live,Javascript,Jquery,Ajax,Load,Live,我在ajax请求和简单的方面有问题 我使用jquery从一个视图加载到另一个视图,使用.load(url),在其他视图中加载视图。 所以问题是,如果我加载view_2 inside view_1,并且view_2的js脚本是inside view_1,我需要使用live('click')从view_2启动一个xhr请求,所以当我尝试同时启动3(多个)xhr,而不是一次只启动一个,我不知道为什么 我只知道: 使用视图1中的live('click')启动3个多XHR 在视图1中使用click()它不

我在ajax请求和简单的
方面有问题

我使用jquery从一个视图加载到另一个视图,使用
.load(url)
,在其他视图中加载视图。 所以问题是,如果我加载view_2 inside view_1,并且view_2的js脚本是inside view_1,我需要使用
live('click')
从view_2启动一个xhr请求,所以当我尝试同时启动
3(多个)xhr
,而不是一次只启动一个,我不知道为什么

我只知道:

  • 使用视图1中的
    live('click')
    启动3个多XHR
  • 在视图1中使用
    click()
    它不起作用(显然我认为)
  • 直接在视图中使用
    click()
    它可以工作(但我不能使用js 在加载的视图中,我只能在“父”视图中使用js)
  • 函数非常简单,真的不知道为什么会出现这个问题(我还禁用了ajax中的submit beforeSend)检查这是一个view_1代码,它在加载的view_2上运行,并启动3个XHR进行单击:|

    $(document).ready(function(){ 
       $('#save-doc').live('click',function(){
        var _title = $('#doc-title').val();
        var _doc = $('#doc-doc').val();
        update_doc(url_update_doc,{'title':_title,'doc':_doc,'id_doc':_choosed_doc,'id_project':id_project},this);
        });
    });
    function update_doc(_url,_data,_starter){
        $.ajax({
            type:'POST',
            data:_data,
            url:_url,
            dataType:'json',
            beforeSend:function(){
                $('.ajax-loading').show();
                $(_starter).attr('disabled','disabled');
            },
            error:function(){
                $('.ajax-loading').hide();
                $(_starter).removeAttr('disabled');
            },
            success:function(json){
                $('.ajax-loading').hide();
                $(_starter).removeAttr('disabled');
                if(json.error){
                    $('#error-title').html(json.error_title);
                    $('#error-doc').html(json.error_doc);
                    $.scrollTo('.append-form-edit-doc','fast');
                }
                if(json.confirm){
                   $.scrollTo('#top','fast');
                   $.gritter.add({
                       title:'Document Saved',
                       text:json.confirm
                   });
               }
            }
        });
    }
    
    如果表单中有一个提交按钮,那么除非您阻止默认操作,否则表单将被提交。(这将导致2篇文章,但不是3篇。)

    如果表单中有一个提交按钮,那么除非您阻止默认操作,否则表单将被提交。(这需要2篇文章,但不是3篇。)

    记住.live()将事件处理程序绑定到文档本身。考虑到这一点,它每次单击都会在整个文档中搜索#save doc

    如果文档中有多个具有“保存文档”ID的元素,那么它们都将被触发

    但是,我敢打赌,您可能有多个表单分层,所有表单都由这一个输入执行

    编辑:第三种可能性,是波蒂提到的。通过事件处理程序执行提交,由于浏览器行为而发生另一次提交

    请提供HTML以及加载到其中的内容。

    请记住.live()将事件处理程序绑定到文档本身。考虑到这一点,它每次单击都会在整个文档中搜索#save doc

    如果文档中有多个具有“保存文档”ID的元素,那么它们都将被触发

    但是,我敢打赌,您可能有多个表单分层,所有表单都由这一个输入执行

    编辑:第三种可能性,是波蒂提到的。通过事件处理程序执行提交,由于浏览器行为而发生另一次提交


    请提供HTML以及加载到其中的内容。

    如果您有多个ID为
    save doc
    的元素,您是否尝试过在“单击”处理程序的末尾添加“return false?”@Shadow Wizard nope ID are ID:)。@Pointy not tryed将尝试)如果您有多个ID为
    保存文档
    的元素,您是否尝试过在“单击”处理程序的末尾添加“return false?”@Shadow Wizard nope ID are ID:)。@Pointy not tryed将尝试;)