我在页面上有一个标签式导航。如果在页面加载时在URL中传递标签标识符,我想显示相应的选项卡,例如http://example.com/page.html#my-tab
目前,触发要显示的标签的A标签的事件处理程序被委托给它的父级:
$("nav.tabs").delegate("a", "click", function (e) {
//trigger event
}
我正在检查URL中的HASH的页面加载,检查它是否对应于A标记的HREF属性,然后触发该事件但它不起作用。
var tab = window.location.hash;
if (tab != undefined) {
console.log(tab)
if ( $("a[href="+tab+"]" ).length > 0) {
console.log(tab)
$("a[href="+tab+"]").trigger("click");
}
}
有什么建议吗?感谢。
答案 0 :(得分:0)
我发现它适用于Firefox,但它在Chrome或IE中都不起作用。最好的方法是,而不是使用匿名函数,你可以命名,并“伪造”调用
var $nav_tabs = $("nav.tabs");
$nav_tabs.delegate("a", "click", function clickme(e) {
//trigger event
});
var tab = window.location.hash;
if (tab != undefined) {
console.log(tab);
if ((tab = $nav_tabs.find("a#" + tab)).length > 0) {
console.log(tab);
clickme.apply( $nav_tabs, [ { target: this } ]);
}
}