我想从jQuery函数中调用两个JavaScript函数。因为我动态加载图像,所以我想通过调用检查宽度的两个函数func1()
和func2()
来检查每个图像的宽度。
If width < 20px then double width
我不想等待图像完全加载然后进行检查。
我尝试了这个但是没有用
$(document).ready(function ()
{
$('img').each(function()
{
....
})
func1();
func2();
})
function func1()
{
....
}
function func2()
{
....
}
我错过了什么?
答案 0 :(得分:1)
除非img标签具有指定的宽度,否则在完全加载之前将无法正确获取宽度。在拥有整个图像之前,浏览器无法知道尺寸是多少。
这是一种等待图像加载的方法:
Official way to ask jQuery wait for all images to load before executing something
答案 1 :(得分:0)
我遇到了类似问题的问题。我认为你必须将你的函数移动到jquery块。
$(document).ready(function() {
function1 () {
...
}
function2 () {
...
}
});
否则,我认为不能从jQuery中调用它们。测试它并通知我结果。
答案 2 :(得分:0)
你可以改变这个:
$(document).ready(function ()
到此:
$(window).load(function ()
确保加载所有图像。
另一种选择是将load
处理程序绑定到图像本身,但如果图像被缓存可能会出现问题。
$('img').load(function() {
func1();
func2();
});
您应该注意,这会为每个图像调用一次函数,这可能意味着您需要更改函数的工作方式。就像让他们接受个人形象一样。