在AJAX页面构建之后启动$(document).ready

时间:2016-03-31 12:26:12

标签: javascript jquery ajax

我有以下代码,使用jquery在从URL加载页面后动态更新页面

$(document).ready(function() {
        var htmlattri="background-color:red;";
        $("body").attr("style", htmlattri);
        $("#navbar").append('<div id="test" style="position: absolute; left: 0px; top: 0px; z-index: 3000; height: 20px"><input type="button" value="Back" onclick="window.history.go(-1)" /></div>')
    });

我遇到的问题是#navbar元素是通过ajax(非JQuery)构建的,它在$(document).ready被触发后发生。

有一种方法可以在页面完全构建后触发它吗?

我无法控制页面源代码。

2 个答案:

答案 0 :(得分:0)

在构建success之后,将您尝试执行的任何代码放在ajax调用的#navbar回调中。您无法“移动”$(document).ready()调用,它将始终在创建dom时执行

答案 1 :(得分:0)

$ .Event怎么样?

$('body').on('wearedone', function(){
    console.log('hello!');
});

$(document).ready(function() {
    var htmlattri="background-color:red;";
    $("body").attr("style", htmlattri);
    $("#navbar").append('<div id="test" style="position: absolute; left: 0px; top: 0px; z-index: 3000; height: 20px"><input type="button" value="Back" onclick="window.history.go(-1)" /></div>');

    // this is where we "reimplement" $(document).ready
    $('body').trigger($.Event('wearedone'));
});