gpt4 book ai didi

Jquery ajax,在触发函数之前等待图像加载

转载 作者:行者123 更新时间:2023-12-01 00:11:06 26 4
gpt4 key购买 nike

嗨,我有一个 jquery 内容动画,除了内容加载之外,一切正常。

$(function() {
var newHash = "",
$mainContent = $("#main_content"),
$pageWrap = $(".big_col"),
$main_menu = $("a.main_menu"),
baseHeight = 0,
$el;

$pageWrap.height($pageWrap.height());
baseHeight = $pageWrap.height() - $mainContent.height();

$("body").delegate("a.main_menu", "click", function() {
window.location.hash = $(this).attr("href");
return false;
});

$(window).bind('hashchange', function(){

newHash = window.location.hash.substring(1);

if (newHash) {
$mainContent
.fadeOut(200, function() {
$mainContent.hide(function() {
$(".loader").show();
var page = newHash.replace(/\..+$/, '');
var page = page.replace(/!/, '');
var data = 'page=' + page;
$.ajax({
url: "main_content/action.php",
type: "POST",
data: data + "&request=ajax",
cache: false,
success: function (html) {

$mainContent.html(html);
$("#main_content").ready(function() {
//var loaded = 0;
$(".loader").hide();
_gaq.push(['_trackPageview', '/it_'+page]);
$mainContent.fadeIn(200, function() {
$pageWrap.animate({
height: baseHeight + $mainContent.height() + "px"
}, 300);
});

$main_menu.removeClass('current');
$('a[href="#' + newHash + '"]').addClass('current');
return false

});
//});

}
});

});

});


};

});

$(window).trigger('hashchange');

});

这是代码,我尝试了在堆栈溢出和其他网站上读到的几乎所有内容,但似乎没有任何效果(您在我粘贴的代码中看到的 .ready 只是我尝试的最后一件事)我尝试过 .load、bind load、live load、img .lenght、.ready,所有内容都选择图像或整个 div,但似乎仍然不起作用。

有什么建议吗?谢谢

编辑的事情是,没有任何函数触发器,脚本就可以正常工作。如果我使用其中任何一个触发器(除了 .ready 之外,但它不会执行应有的操作),脚本会在该触发器处停止(我隐藏加载程序的位置),它不会再继续。

最佳答案

好的,我已经解决了。问题是我认为 jquery 足够聪明,会认为“好吧,这个伙伴有一个在加载图像时拍摄的功能。OFC 即使内容 div 中没有图像,它也会继续”。不幸的是,情况并非如此,如果您编写像

这样的事件
$("#mydiv img").on('load', function(){
alert("images loaded");
});

仅当#mydiv 内有图像且图像已加载时才会触发警报。如果#mydiv 仅包含文本,则该函数也不会被触发。我通过添加解决了

if ($("#main_content").find("img").length > 0) {
$("#main_content img").on('load', function() {

否则是正常的ajax加载功能。

谢谢各位的回复

关于Jquery ajax,在触发函数之前等待图像加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12155927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com