gpt4 book ai didi

jquery - 如何在使用 delegate() 处理其事件的元素上触发() 事件

转载 作者:行者123 更新时间:2023-12-01 01:50:18 24 4
gpt4 key购买 nike

我的页面上有一个选项卡样式导航。如果页面加载时在 URL 中传递了选项卡标识符,我想显示相应的选项卡。 http://example.com/page.html#my-tab .

目前,触发选项卡显示的 A 标记的事件处理程序已委托(delegate)给其父级:

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

有什么建议吗?谢谢。

最佳答案

我发现它在 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 } ]);
}
}

关于jquery - 如何在使用 delegate() 处理其事件的元素上触发() 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12502414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com