我有一个 javascript 片段,它拦截链接点击并将其转换为哈希值(我知道 hash-id 不在 W3C 建议中:))
$("a").click(function(event) {
event.preventDefault();
newHash = $(this).attr("hash-id");
console.log(newHash);
if (typeof newHash === "undefined"){
window.location = $(this).attr("href");
}
else{
window.location.hash = "#" + newHash;
}
});
基本上,每当用户单击任何链接时,如果没有,它应该获取它的“哈希 ID”,而不是定期加载页面。 现在:它在我的网站、页脚、页眉上效果很好,但是在我单击“注入(inject)”内容后
$("#container").load(href + " #content");
它不起作用,不会向控制台、警报返回任何输出。
我尝试将代码放在两个页面的开头、结尾、页脚处,但没有任何效果,有人知道如何使其工作吗?
最佳答案
您应该使用 $("a").live("click", function(){..})
,以便事件监听器绑定(bind)到所有(现在和以后)a
元素。
当您使用.click(func)
=.bind("click", func)
时,仅为所有当前(现有)元素添加事件监听器, 不到将来添加的元素。
关于JavaScript 代码在 jQuery load() 之后不影响 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646447/