在<img onload=""/>事件上使用jquery document.ready()

时间:2011-10-27 12:50:41

标签: javascript jquery onload

我有以下需要:每次在页面上加载图像时我想调用js但是 我还需要在js运行之前完成页面的DOM加载。

我写了下面的'虚拟'示例,我想知道它是否可以被认为是正确的。 它似乎有效,但是,因为jquery说:“.ready()方法通常与...不兼容  属性“,我希望有人告诉我:”是的,你可以这样做“。

非常感谢你的帮助, 尼科

示例:

<html>
<head>


<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
    function mySetVal() {

       $(document).ready(function () {
         $("#status").val("Refreshing");
       });
    }
</script>
</head>

<body>


<div style="border:1px solid green">
<img src="target.jpeg" id="cat" onload="mySetVal()"></img>
</div>

<div>
<p>E poi che la sua mano a la mia puose con lieto volto, ond'io mi confortai, mi mise dentro a le segrete cose.</p>
</div>

<table>

<tr>
<th>animale</th><th>pianta</th>
</tr>

<tr>
<td>mucca</td><td>palma</td>
</tr>

</table>

<p>Input: <input type="text" id="status" /></p>

</body>
</html>

3 个答案:

答案 0 :(得分:0)

是的,你可以这样做,只要在图像之前加载jQuery,因为如果DOM在调用时已经准备好,将直接调用ready函数。

答案 1 :(得分:0)

是的,这正是$(document)ready(...)的意思。

查看http://docs.jquery.com/Tutorials:Introducing_ $%28document%29.ready%28%29

“一旦加载DOM并加载页面内容之前,其中的所有内容都将加载”

答案 2 :(得分:0)

我建议你从img标签中删除内联属性onload。 您可以使用以下代码:

$(document).ready(function()
{
    $("#cat").load(function()
    {
        $("#status").val("Refreshing");
    });
});