在jQuery函数中调用JavaScript函数?

时间:2011-12-18 13:53:58

标签: javascript jquery function call

我想从jQuery函数中调用两个JavaScript函数。因为我动态加载图像,所以我想通过调用检查宽度的两个函数func1()func2()来检查每个图像的宽度。

If width < 20px then double width

我不想等待图像完全加载然后进行检查。

我尝试了这个但是没有用

$(document).ready(function ()
{
    $('img').each(function()
    {
       ....
    })

    func1();
    func2();
})

function func1()
{
   ....
}

function func2()
{
   ....
}

我错过了什么?

3 个答案:

答案 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();
});

您应该注意,这会为每个图像调用一次函数,这可能意味着您需要更改函数的工作方式。就像让他们接受个人形象一样。