javascript
  • php
  • jquery
  • ajax
  • 2016-07-28 56 views 0 likes 
    0

    我有一个Ajax调用:负载脚本后Ajax调用不行

    $('#opt').change(function() { 
        var option = $("#cdc").val(); 
        $.ajax({ 
        type: "POST", 
        url: "orari_pause/select_spaccato.php", 
        data: 'option=' + option, 
        success: function(whatigot) { 
         $('#spaccato').html(whatigot); 
        }, //END OF SUCCESS 
        complete: function() { 
         $.getScript("orari_pause/script_opener.js", function() { 
         }); 
        } //END OF COMPLETE 
        }); 
    }); 
    

    script_opener.js

    $(function() { 
        $("#dialog").dialog({ 
        autoOpen: false, 
        title: 'Dettaglio sessioni', 
        height: 600, 
        width:800, 
        modal:true, 
        resizable: false 
        }); 
    
        $(".opener").click(function() { 
        var id = $(this).attr('id'); 
        $("#dialog").load("orari_pause/dettaglio_sessioni.php?id="+id); 
        $("#dialog").dialog("open"); 
        $('.ui-widget-overlay').css('background', 'silver'); 
        }); 
    
        $("#dialog2").dialog({ 
        autoOpen: false, 
        title: 'Inserimento sessione', 
        height: 380, 
        width:300, 
        modal:true, 
        resizable: false 
        }); 
    
        $(".opener_session").click(function() { 
        var id = $(this).attr('id'); 
        $("#dialog2").load("orari_pause/form_nuova_sessione.php?id="+id); 
        $("#dialog2").dialog("open"); 
        $('.ui-widget-overlay').css('background', 'silver'); 
        }); 
    }); 
    

    select_spaccato.php我有opener_session类的按钮。当我点击它时,事件不会触发(但脚本加载正确)。我认为是一个DOM的问题...我也尝试搜索到没有结果的Stackoverflow论坛。

    你能帮我吗?

    编辑 我尝试在whatigot变量中加载JavaScript代码,结果相同。 JS代码已加载,但事件不起作用。

    +0

    你一定要正确地发送您的选项数据?我认为你应该使用var option = $(this).val();添加问题的HTML结构,以便我可以在家中反映您的问题 – rad11

    +0

    是的,页面正确返回。其中的opener_session元素在点击时不会触发事件(script_opener.js,在“完成”函数中)您可以使用$ .when –

    +0

    。你可以参考https://css-tricks.com/multiple-simultaneous-ajax-requests-one-callback-jquery/或尝试在成功函数本身加载脚本 –

    回答

    1

    使用事件代表团

    $('body').on('click',".opener",function() { 
    
    $('body').on('click',".opener_session",function() { 
    
    +1

    为什么这将是必要的?有问题的元素是动态添加的,但调用'.click()'的脚本在*之后运行*,不是吗? – nnnnnn

    +0

    一个更好的问题是,为什么在成功/完成功能中粘贴该文件的内容时加载另一个js文件? – madalinivascu

    +0

    谢谢,它的作品! –

    相关问题