【发布时间】: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 中不起作用。
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
试试看这篇文章,也许对你有帮助codeproject.com/Tips/893254/…
标签: jquery triggers custom-events