0

我有一个神秘的 JS 问题:我用一个函数激活不同的 jQuery-Plugins。它是这样称呼的:

<script>
postAjaxCalls();
</script>

然后,对应的函数如下所示:

function postAjaxCalls() {
    jQuery("[title]").tooltip(); 
    alert("this works great, tooltip not!");
    jQuery("select").selectbox();
} 

当我重新加载页面时,一切正常,但工具提示插件除外。现在,如果我在 JS 控制台中触发完全相同的代码,插件就会被激活:

jQuery("[title]").tooltip(); 

为什么?为什么通过控制台激活时它可以工作,但通过功能激活时它不起作用?

干杯!

4

2 回答 2

3

$(document).ready(function() { .. })简而言之$(function() { .. }),在 DOM 准备好后执行您的代码。

jQuery(document).ready(function() {

  function postAjaxCalls() {
    jQuery("[title]").tooltip(); 
    alert("this works great, tooltip not!");
    jQuery("select").selectbox();
  } 
  postAjaxCalls();

});

或简而言之

jQuery(function() {

  function postAjaxCalls() {
    jQuery("[title]").tooltip(); 
    alert("this works great, tooltip not!");
    jQuery("select").selectbox();
  } 
  postAjaxCalls();

});
于 2012-07-18T15:58:16.440 回答
0

您可能postAjaxCalls在 DOM 准备好之前调用。当你从控制台调用它时,DOM 就准备好了,所以它可以工作了。

试试这个:

$(function(){
    postAjaxCalls();
});
于 2012-07-18T15:58:36.007 回答