javascript - 函数内的 Jquery bind()/live()

标签 javascript jquery

我写了一个小寻呼机,可以删除并重写内容。我有一个在加载页面后调用的函数,它也应在更改页面后执行。因为我不想两次实现该函数(在初始化时和更改页面后),所以我尝试了 bind()/live() 和一个简单的函数。

该函数如下所示:

jQuery('.blogentry').each(function (){
    jQuery(this).click(function(){
        //Clicking on the element opens a layer, definitely works - I tested it
    });
});

它是在初始化后执行的,为了在页面更改后执行它,我尝试了以下操作:

jQuery('.nextPage, .prevPage').click(function changePage(){
    // Changing page and rewriting content
    showEntry();
});
//...
showEntry();
//...
function showEntry(){
jQuery('.blogentry').each(function (){
    jQuery(this).click(function(){
        //Clicking on the element opens a layer, definitely works - I tested it
    });
});
}

但是如果将其放入函数中(lol)并通过 showEntry() 调用,则该函数不会执行;

后来我尝试绑定(bind)该函数...

jQuery('.nextPage, .prevPage').click(function changePage(){
    // Changing page and rewriting content
    jQuery('.blogentry').bind("click", showEntry);
});
//...
jQuery(this).click(function showEntry(){
    //Clicking on the element opens a layer, definitely works - I tested it
});

也没有用。 bind() 行之后的代码也不会执行。 我想如果已经通过参数给出了事件,那么绑定(bind)到事件函数可能是一个问题,所以我也尝试了这个:

jQuery('.nextPage, .prevPage').click(function changePage(){
    // Changing page and rewriting content
    jQuery('.blogentry').bind("click", showEntry);
});
//...
function showEntry(){
    //Clicking on the element opens a layer, definitely works - I tested it
});
}

根本没有成功。也许我无法从与 bind() 有关的函数内部调用该函数?也许我根本不理解bind()函数?我还尝试了 live() 函数,因为它似乎更适合,因为我一直在重写内容。但它有同样的效果:没有......

最佳答案

实现这一点的最简单方法应该是

jQuery('.blogentry').live('click', function() { /* onclick handler */ }); 

这应该将该函数绑定(bind)到调用时页面上的每个博客条目以及稍后添加到页面的所有博客条目。

附加说明:

$(foo).each(function() { $(this).click(fun); }); 中,each 是不必要的 - $(foo).click(有趣); 就足够了。

$(foo).bind('click', fun); 在功能上等同于 $(foo).click(fun) - 哪个并不重要你用的一个。

关于javascript - 函数内的 Jquery bind()/live(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7158947/

相关文章:

javascript - 如何隐藏/显示JS生成的内容?

javascript - 为新标签页和窗口的 Chrome 扩展程序添加事件监听器

javascript - 关于如何将 pos 系统上的交易数据插入数据库的想法?

php - 更新 MySQL 数据库中的 Backbone.js 模型

javascript - 是否可以在表之外访问 BTable 属性?

javascript - 如何在 javascript 中返回具有 O(n) 时间复杂度的相同字母元素?

javascript - 如何在 JavaScript 中定义实例化函数的行为

javascript - 在按键事件中,Tab 键在 Firefox 中不起作用

javascript - 悬停时更改图像

javascript - 使用 jQuery 将文本和元素包裹在另一个元素中