javascript - 如何检测动态添加的元素何时加载?

标签 javascript jquery

编辑:添加了 Handlebar 模板加载

我正在尝试检测何时加载了动态添加的元素(从 Handlebars 模板),但该事件从未触发。

代码如下:

var source = $('#mapTemplate').html();
var template = Handlebars.compile(source);
$('#wrapper').fadeOut(function() {
    $('#wrapper').html(template());
    $('#wrapper').fadeIn();
});
$('body').on('ready', '#mapCanvas', function() {
        alert('Ready')
        var mapOptions = {
            center: new google.maps.LatLng(-34.397, 150.644),
            zoom: 8
        };
        var map = new google.maps.Map(document.getElementById("mapCanvas"),mapOptions);
    })

我做错了什么?

最佳答案

在调用插入 Handlebars 的模板后,您的模板立即在页面上可用

$('#wrapper').html(template());
//#mapCanvas should be available 

但是,您可能会遇到错误,因为您告诉 div 淡入并且 jQuery 使其最初不可见。请务必等到 fadeIn 结束。

var source = $('#mapTemplate').html();
var template = Handlebars.compile(source);
$('#wrapper').fadeOut(function() {
    $('#wrapper').html(template());
    $('#wrapper').fadeIn(function() {
        var mapOptions = {
            center: new google.maps.LatLng(-34.397, 150.644),
            zoom: 8
        };
        var map = new google.maps.Map(document.getElementById("mapCanvas"),mapOptions);
    });
});

关于javascript - 如何检测动态添加的元素何时加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25089748/

相关文章:

javascript - 如何使用 angularjs 填充 json 数据?

javascript - fnGetPosition 的数据表问题

javascript - 事件返回 True/False 的 jQuery 插件

javascript - js测量可见高度与div总高度的差值

jquery - 用于 jQueryUI 的 SproutCore Ace

javascript - 使用 Pixi.js/html Canvas 绘制鼠标选择区域(橡皮筋)

javascript - jQuery - 插入内联 CSS 或制作 CSS 类并添加

javascript - 获取 ol.Feature.getGeometry().j 的更好方法

javascript - 如何将数组绑定(bind)到 arrystore 以便在 extjs 中填充组合

Javascript AppendTo 动画不起作用