目前使用jQuery时,当我需要做一些事情时,点击发生,我会这样做...

$(".close-box").click( function() {
    MoneyBox.closeBox();
    return false;
});

I was looking at some code someone else has on a project and they do it like this...

$(".close-box").live("click", function () {
    MoneyBox.closeBox();
    return false;
});

请注意,就我所知,它似乎做了同样的事情,只是它们使用的是live()函数,现在已被弃用,jQuery文档说使用on()来代替它,但无论如何,为什么要使用live/on()来代替我的第一个示例呢?

推荐答案

因为您可能有一个动态生成的元素(例如来自AJAX调用),所以您可能希望有以前绑定到同一元素 Select 器的同一个单击处理程序,然后使用on() with selector参数"委托"单击事件

To demonstrate:

http://jsfiddle.net/AJRw3/

on() can also be synonymous with click() if you don't have a selector specified:

$('.elementClass').click(function() { // code 
});

is synonymous with

$('.elementClass').on('click', function() { // code
});

In the sense that it only add the handler one time to all elements with class elementClass. If you have a new elementClass coming from, for example $('<div class="elementClass" />'), the handler won't be bound on that new element, you need to do:

$('#container').on('click', '.elementClass', function() { // code
});

假设#container.elementClass的祖先

Jquery相关问答推荐

如何在html css中制作响应表

Django BaseDataTableView-Filter_queryset方法不起作用

如何使用 jQuery 获取所有 ID?

纯css关闭按钮

jquery清除输入默认值

我如何从 ACE 编辑器中获得价值?

Chart.js 中饼图的点击事件

按值对 Html Select 的选项进行排序的最有效方法是什么,同时保留当前选定的项目?

使用 Jquery 更改页面标题

如何使用 jQuery 停止默认链接点击行为

将片段添加到 URL 而不导致重定向?

如何在新窗口中打开链接?

jQuery - 确定输入元素是文本框还是 Select 列表

使用 jQuery 和 CSS 将数字转换为星级显示

为什么要定义一个匿名函数并将 jQuery 作为参数传递给它?

如何在文件 Select 上触发事件

.animate() 的回调被调用两次 jquery

textarea 的 val() 与 text()

Jquery 日期 Select 器 z-index 问题

使用 jQuery 检测元素内容的变化