如何最后加载一个jQuery脚本?

时间:2012-04-02 作者:xyz

如何让它最后加载?

 <script type="text/javascript">
  jQuery(document).ready(function(){
   jQuery("div.domTip_tipBody").mouseover(function(){
   jQuery("#yyy a.tippy_link").css("background-color","yellow");});  

   jQuery("div.domTip_tipBody").mouseout(function(){
   jQuery("#yyy a.tippy_link").css("background-color","red");
 }); 
 });  
 </script>
它是在运行“div.domTip\\u tipBody”之前运行的(由一个短代码生成),所以什么都没有发生。

我尝试过:

<script src="script.js" type="text/javascript" defer="defer"></script>
在我的标题中。php之前

</head> 
但这没有帮助。

已看到“window.onload=”,但不确定如何应用它。

任何见解都将不胜感激。

谢谢

5 个回复
最合适的回答,由SO网友:Rajeev Vyas 整理而成
add_action(\'wp_footer\',\'myscript_in_footer\');
function myscript_in_footer(){
?>
<script type="text/javascript">
  jQuery(document).ready(function(){
   jQuery("div.domTip_tipBody").mouseover(function(){
   jQuery("#yyy a.tippy_link").css("background-color","yellow");});  

   jQuery("div.domTip_tipBody").mouseout(function(){
   jQuery("#yyy a.tippy_link").css("background-color","red");
 }); 
 });  
 </script>
<?php
}
SO网友:kaiser

将代码放入名为your_name.js.functions.php 文件:

function wpse47618_load_script_last()
{
    wp_enqueue_script( \'zzz_your_name\', get_stylesheet_directory_uri().\'your_name.js\', array( \'jquery\' ), \'0\', true );
}
add_action( \'wp_enqueue_scripts\', \'wpse47618_load_script_last\', 99999 );
如果脚本添加成功,文件路径是否正确,请检查页面源代码。如果使用FireBug或其他开发工具,请单击文件名并查看脚本内容

SO网友:rashid

这看起来像是jQuery事件委派问题。如果在页面加载后添加了新的DOM元素,jQuery将不会读取它们。所以,如果现在或将来存在这样的元素,您需要提前告诉jQuery绑定事件。

尝试$.delegate(\'div.domTip_tipBody\',\'mouseover\', function(e){ jQuery("#yyy a.tippy_link").css("background-color","yellow");}); });

看见http://api.jquery.com/delegate/ , http://lab.distilldesign.com/event-delegation/

SO网友:markratledge

您只需将脚本添加到页脚即可。php和它可能会工作,但这不是避免jQuery冲突的最佳方法。

最好的方法是将脚本从单独的文件中排队。看见http://codex.wordpress.org/Function_Reference/wp_enqueue_script 它有一个参数,可以通过wp\\u footer在footer中加载脚本。

请参阅WordPress中无冲突JavaScript和CSS的开发人员指南:http://wp.smashingmagazine.com/2011/10/12/developers-guide-conflict-free-javascript-css-wordpress/

SO网友:Sam

这可能有点晚了,但以防万一还有人在看:

http://css-tricks.com/snippets/jquery/run-javascript-only-after-entire-page-has-loaded/

做这件事的好方法和简单方法!

结束

相关推荐

修改此循环以适合我的jQuery滑块(幻灯片)

我正在尝试制作一个滑块,它从特定的自定义帖子类型中获取缩略图,并为每个“幻灯片”显示其中的一个。我让滑块和缩略图正常工作,但我不确定如何修改循环,使其在容器中显示4篇文章,然后重复接下来的4篇文章,依此类推。我的循环如下所示:<div id=\"slides\"> <div class=\"slides_container\"> <?php $loop = new WP_Query(array(\'post_type\' =&