我有一个网页,我想要在用户点击链接时发生操作,或者当页面加载时,如果网址包含某个哈希值。
以下是人类点击其中一个链接时会触发的代码:
jQuery( ".mygroup a" ).click(function(e) {
// all the stuff that happens, including reference to and manipulation of extshapeAr
});
如果用户直接点击任何链接,则所有相关操作(更改字体大小和颜色,以及更改页面其余部分上单独加载的对象上的形状上的颜色)都可以按预期工作。
但是,如果我检查哈希以及它是否存在,请使用:
jQuery(document).ready(function(){
var hash = window.location.hash;
var hashclean = hash.substr(1);
if (hash) {
jQuery('.mygroup a.'+ hashclean).trigger('click');
}
});
触发点击并执行某些代码,但随后出现参考错误,告诉我未单独加载的对象。
未捕获的ReferenceError:未定义extshapeAr
触发器不应该像人类点击一样工作吗?我错过了什么?
答案 0 :(得分:0)
您将点击处理程序附加到jQuery( ".mygroup a" )
,并以某种方式触发jQuery('.mygroup a.'+ hashclean)
上与第一个上下文不匹配的点击事件。永远改变它以匹配jQuery( ".mygroup a" )
无法重现错误,您可以复制它,并将其粘贴到此处
答案 1 :(得分:0)
好的,我弄清楚造成这种情况的原因。创建extshapeAr的代码运行时间太长,所以即使我认为我的文档准备声明我已经受到保护,显然不是。在创建该对象之后,我不得不将哈希检查放在单独加载的代码中。现在一切正常。