JavaScript 代码在 jQuery load() 之后不影响 div

标签 javascript jquery load

我有一个 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/

相关文章:

javascript - Gatsby 第二个布局模板

javascript - 重新渲染两个 Angular 数据表

javascript - react 路由器 onChange

javascript - 将 Javascript 加载到 ajax 加载的内容中

Jquery 将隐藏的 div 加载到弹出的 div 中

安卓 : Set a value from an external file in a spinner

javascript - setTimeout() 不适用于 jQuery(this)

javascript - 使用 jQuery 折叠菜单和一个切换折叠的按钮

jquery - 如果屏幕分辨率小于 x 追加 css

javascript - 我不明白 JavaScript 中的这种比较是如何工作的