jQuery插件可以通过控制台触发,但不是按function触发 – 为什么?

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

 postAjaxCalls();  

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

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

当我重新加载页面时,一切都有效,但工具提示插件。 现在,如果我将完全相同的代码发送到JS控制台,则会激活插件:

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

为什么? 为什么它在通过控制台激活时有效,但在通过function激活时不起作用?

干杯!

尝试使用$(document).ready(function() { .. })中的$(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(); }); 

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

试试这个:

 $(function(){ postAjaxCalls(); });