我有一个网页,点击后会重定向到另一个页面。 在第二页,我有这个:
<?php if(isset($_POST['tab1'])) { ?>
<script>$('#home').trigger('click'); </script>
<?php }?>
$_POST
回来没问题,只是我在jquery的控制台中出现了这个错误:
在萤火虫中:
TypeError: $("#home") is null
或在Chrome中:
$('#home').trigger('click');
如果我执行此操作:alert(document.getElementsByTagName('#home'));
我收到[object HTMLCollection]
undefined
如果我查看源代码,我可以在那里看到我的jquery:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js"></script>
<script>
!window.jQuery && document.write('<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.js"><\/script>');
</script>
关于为什么jquery失败的任何想法?
答案 0 :(得分:8)
在某些设置中,$ sign不是jQuery的别名
(例如jQuery.noConflict();
导致)
另见 Replace "$"(dollar Sign) with "JQuery"
所以$(document).ready(function() { ... });
是写的
jQuery(document).ready(function() { ... });
答案 1 :(得分:5)
尝试将其放入文档中以确保在操作之前加载DOM:
<?php if(isset($_POST['tab1'])) { ?>
<script>$(function() { $('#home').trigger('click'); } );</script>
<?php }?>
答案 2 :(得分:2)
FIX:
<script>$( window ).load(function() { $('#home').trigger('click'); });</script>
答案 3 :(得分:0)
将您的脚本放在ready()
函数中。
尝试这样的事情:
<?php if(isset($_POST['tab1'])) { ?>
<script>$(function(){
$('#home').trigger('click');
});</script>
<?php }?>
答案 4 :(得分:0)
首先确保文档加载是至关重要的。
<script>$(function() { $('#home').trigger('click'); });</script>
那是因为在加载脚本时,可能还没有定义#home
(因为定义它的源代码尚未下载/解析),
所以你应该确保用$(function() { ... });
或$(document).ready(function() { ... });
答案 5 :(得分:0)
就我而言,唯一有效的解决方案就是我从here获得的解决方案:
<script language="javascript" type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(
function() {
alert($j("selector")); //object is properly initialized
}
);
</script>
使用jQuery.noConflict();
返回变量代替$
。