Javascript jQuery赢得';Don’别听我的第二声

Javascript jQuery赢得';Don’别听我的第二声,javascript,jquery,Javascript,Jquery,我试图通过添加一个新类并使用jQuery查找它来注册对链接的第二次单击。但在第一次单击后,它不会更改类 希望它有意义,并提前感谢您 // Listen for when a.first-choice are being clicked $('.first-choice').click(function() { // Remove the class and another one $(this).removeClass('first-choice

我试图通过添加一个新类并使用jQuery查找它来注册对链接的第二次单击。但在第一次单击后,它不会更改类

希望它有意义,并提前感谢您

    // Listen for when a.first-choice are being clicked
    $('.first-choice').click(function() {

        // Remove the class and another one
        $(this).removeClass('first-choice').addClass('one-choice-made');

            console.log('First Click');
            // Some code goes here....

        });

        // Make sure the link isn't fireing.
        return false;
    });


    // Listen for when a.one-choice-made are being clicked
    $('.one-choice-made').click(function() {

        // Remove the class and another one
        $(this).removeClass('one-choice-made').addClass('two-choice-made');

            console.log('Second Click');
            // Some code goes here....

        });

        // Make sure the link isn't fireing.
        return false;
    });

由于要更改类,因此需要使用
.on()
的语法

更改:

$('.one-choice-made').click(function() {
致:


理想情况下,您希望使用DOM中已经存在的元素,该元素比
document
更接近,但是
document
是一个不错的回退。

因为您要更改类,所以需要使用
.on()
的语法

更改:

$('.one-choice-made').click(function() {
致:


理想情况下,您希望使用DOM中已经存在的元素,该元素比
document
更接近,但是
document
是一个不错的回退。

因为您要更改类,所以需要使用
.on()
的语法

更改:

$('.one-choice-made').click(function() {
致:


理想情况下,您希望使用DOM中已经存在的元素,该元素比
document
更接近,但是
document
是一个不错的回退。

因为您要更改类,所以需要使用
.on()
的语法

更改:

$('.one-choice-made').click(function() {
致:


理想情况下,您希望使用DOM中已经存在的元素,该元素比
document
更接近,但是
document
是一个不错的回退。

在加载时,
。所做的一个选择不存在,因此当您调用
$('.one choice')
时,它返回一个空的jQuery对象,因此,
单击()
处理程序未添加到任何内容

您要做的是将处理程序附加到将始终存在的对象上,该对象将响应单击事件(即父/祖先元素)。这就是
$.on()
在以委托处理程序语法(即使用筛选器选择器)调用时为您所做的:

在本例中,jQuery将一个特殊的处理程序附加到
文档
,它监视从子元素传播到文档的单击事件。当jQuery收到单击时,它会查看单击的目标并根据您提供的选择器对其进行过滤。如果匹配,则调用函数代码。通过这种方式,您可以随时在此类中添加新元素,只要它们是您应用的选择器
.on()
中的元素的子元素。在本例中,我们使用了
文档
,因此它将始终使用新元素

您可以将其缩减为已知的永久父元素,以减少单击事件,但对于简单的情况,
document

注意:同样,删除类
first choice
不会对是否调用第一次单击处理程序产生任何影响,因为该处理程序应用于元素。如果删除该类,元素仍将具有处理程序。您还需要为此使用委托处理程序:

$(document).on('click', '.first-choice', function() {
    // my first function
}

演示:

在加载时,
。所做的一个选择不存在,因此当您调用
$('.one choice')
时,它返回一个空的jQuery对象,因此
click()
处理程序不会添加到任何内容中

您要做的是将处理程序附加到将始终存在的对象上,该对象将响应单击事件(即父/祖先元素)。这就是
$.on()
在以委托处理程序语法(即使用筛选器选择器)调用时为您所做的:

在本例中,jQuery将一个特殊的处理程序附加到
文档
,它监视从子元素传播到文档的单击事件。当jQuery收到单击时,它会查看单击的目标并根据您提供的选择器对其进行过滤。如果匹配,则调用函数代码。通过这种方式,您可以随时在此类中添加新元素,只要它们是您应用的选择器
.on()
中的元素的子元素。在本例中,我们使用了
文档
,因此它将始终使用新元素

您可以将其缩减为已知的永久父元素,以减少单击事件,但对于简单的情况,
document

注意:同样,删除类
first choice
不会对是否调用第一次单击处理程序产生任何影响,因为该处理程序应用于元素。如果删除该类,元素仍将具有处理程序。您还需要为此使用委托处理程序:

$(document).on('click', '.first-choice', function() {
    // my first function
}

演示:

在加载时,
。所做的一个选择不存在,因此当您调用
$('.one choice')
时,它返回一个空的jQuery对象,因此
click()
处理程序不会添加到任何内容中

您要做的是将处理程序附加到将始终存在的对象上,该对象将响应单击事件(即父/祖先元素)。这就是
$.on()
在以委托处理程序语法(即使用筛选器选择器)调用时为您所做的:

在本例中,jQuery将一个特殊的处理程序附加到
文档
,它监视从子元素传播到文档的单击事件。当jQuery收到单击时,它会查看单击的目标并根据您提供的选择器对其进行过滤。如果匹配,则调用函数代码。通过这种方式,您可以随时在此类中添加新元素,只要它们是您应用的选择器
.on()
中的元素的子元素。在本例中,我们使用了
文档
,因此它将始终使用新元素

您可以将其缩减为已知的永久父元素,以减少单击事件,但对于简单的情况,
document

注意:同样,删除类
first choice
不会对是否调用第一次单击处理程序产生任何影响,因为该处理程序应用于元素。如果删除该类,元素仍将具有处理程序。您还需要为此使用委托处理程序:

$(document).on('click', '.first-choice', function() {
    // my first function
}
演示:

A