【问题标题】:jQuery .trigger() not firing on Internet ExplorerjQuery .trigger() 没有在 Internet Explorer 上触发
【发布时间】:2018-08-27 07:33:30
【问题描述】:

当函数执行时,我在文档上触发了一个事件。它在除 Internet Explorer(版本 11)之外的所有浏览器中都能正常工作。这是我的代码

function getBgUrl(el) {
    if (typeof el !== "undefined" || el !== null) {
        var bg = "";
        if (el.currentStyle) { // IE
            bg = el.currentStyle.backgroundImage;
        } else if (document.defaultView && document.defaultView.getComputedStyle) { // Firefox
            bg = document.defaultView.getComputedStyle(el, "").backgroundImage;
        } else { // try and get inline style
            bg = el.style.backgroundImage;
        }
        return bg.replace(/url\(['"]?(.*?)['"]?\)/i, "$1");
    }
}

if ( jQuery('#wcp_body').length ) {
    var image = document.createElement('img');
    image.src = getBgUrl(document.getElementById('wcp_body'));
    image.onload = function (event) {
        //jQuery(document).trigger('bgimageloaded');
        jQuery.event.trigger({type: "bgimageloaded" });
    };
}  

然后,文件准备好了..

jQuery( document ).ready(function($) {

    $(document).on('bgimageloaded', function() {
        console.log( 'BG Image Loaded' );
    });

});  

上面的代码实际上获取了与元素关联的背景图像,并在图像加载时触发自定义事件。我不明白为什么这仅在 IE11 中不起作用。

任何帮助将不胜感激。
谢谢

【问题讨论】:

标签: jquery triggers custom-events


【解决方案1】:

我想你会为触发器设置timeOut。

setTimeout(函数(){

//jQuery(document).trigger('bgimageloaded');

jQuery.event.trigger({type: "bgimageloaded" });

}, 10);

【讨论】:

    猜你喜欢
    • 2015-04-10
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    相关资源
    最近更新 更多