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