2012-05-13 2 views
2

Можно создать дубликат:.
jquery .bind() and/or .ready() not working

Почему существует разница в о/р между ниже аналогичными программами?

<html> 
<head> 
<script src="scripts/jquery-1.6.2.js"></script> 
<script> 
    function main() 
    { 
    $("#inside").text("1234"); 
    } 
    $(document).ready(function(){ 
     main(); // 1 
    }); 
</script> 
</head> 
<body> 
    <div id="inside">abcd</div> 
</body> 
</html> 

Выход: 1234

<html> 
<head> 
<script src="scripts/jquery-1.6.2.js"></script> 
<script> 
    function main() 
    { 
    $("#inside").text("1234"); 
    } 
    $(document).ready(main());//2 
</script> 
</head> 
<body> 
    <div id="inside"> 
    abcd 
    </div> 
</body> 
</html> 

Выход: ABCD

Почему innerHTML не меняет здесь? Пожалуйста, объясните это поведение .. :)

+0

Пожалуйста, кто-то, близкий как дубликат ... –

+0

@pst - Почему бы вам не наткнуться на этот шар? – jmort253

+0

@ jmort253 Трудно найти дубликаты с такими «полезными» названиями. –

ответ

7

Во втором варианте вы вызываете document.ready для результата функции. Для вызова самой функции, просто опустить скобки:

$(document).ready(main); 
0

Во второй версии, вы сразу же вызов функции main(), а не передав его в качестве обратного вызова - то, что вы передаете в $(document).ready() является актуальным результат функции main, а не самой функции.

Смежные вопросы