我对任何Javascript都很糟糕,所以我认为这很容易,但我认为我寻找答案的方式是错误的。我试图将一个带有jQuery的类添加到比它们更宽的图像(肖像)。我的jquery看起来像这样:
jQuery(document).ready(function($){
var imgs = $(".isLandscape");
imgs.each(function(){
var img = $(this);
var width = img.width();
var height = img.height();
if(width < height){
img.parent('li').addClass('portrait');
}
})
});
在初始页面加载后刷新页面后,它可以正常工作。为了澄清:首次加载页面,.isLandscape
未添加到<li>
元素。我刷新了页面,.isLandscape
类被添加到<li>
元素中,一切都是我希望它在第一次加载时的样子。我错过了什么?
我尝试过的一些事情:
(window).on("load", function...
。而不是(document).ready...
和一些不同的变体。
将jquery加载到<head>
与<&#39;
我用Google搜索了一堆随意的东西。
可能有助于我帮助的一些事情:
它是一个wordpress网站。
显然我在javascript上很糟糕。
提前感谢您的帮助。
感谢大家的帮助。帮助我的小费是我没有听完所有要装满的东西。这是我的最终代码:
jQuery(document).ready(function($){
$(window).load(function(){
$(".isLandscape").each(function(){
var img = $(this);
var width = img.width();
var height = img.height();
if(width < height){
img.parent('li').addClass('portrait');
}
})
});
});
我需要:
1.确保dom准备就绪jQuery(document).ready
。
$(window).load(function...
,这与我相信的$(window).on("load", function()...
相同。 对于那些发现这一点的人来说只是一张纸条:
我尝试使用window
或"img"
而不是".isLandscape"
来查看特定元素是否已加载且均未加载。我认为因为页面上有许多图像和图像.isLandscape
,但我并不完全确定。
答案 0 :(得分:1)
在我原来的问题中查看上面的更多信息:
jQuery(document).ready(function($){
$(window).load(function(){
$(".isLandscape").each(function(){
var img = $(this);
var width = img.width();
var height = img.height();
if(width < height){
img.parent('li').addClass('portrait');
}
})
});
});
答案 1 :(得分:0)
所以我不知道你的html结构,当.isLandscape
添加到<li>
标签时,我只能给你一些伪代码。
$(document).ready(function(){
$(document).on('load','.isLandscape',function(event){
var img = $(event.currentTarget);
var width = img.width();
var height = img.height();
if(width < height){
img.parent('li').addClass('portrait');
}
});
});
关于jquery on的文档。第二个document
可以是所有.isLandscape
的父标记,load
事件可以是添加.isLandscape
时的事件<li>
代码。