单击功能仍然适用于已被其他类替换的上一个类

Amr*_*ngh 3 javascript jquery

我遇到了jQuery点击事件的问题.当我替换一个类的时div,click函数仍然适用于上一个类.这是我正在使用的代码:

$(this).removeClass('edit_agent_val').addClass('edit_agent_val2');
Run Code Online (Sandbox Code Playgroud)

点击功能仍在工作,edit_agent_val而不是edit_agent_val2.

// This should not work
$('.edit_agent_val').on('click', function(e) {          
     // some code...
});

// This should work
$('.edit_agent_val2').on('click', function(e) { 
    // some code...
});
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

Ror*_*san 6

问题是因为当元素仍然具有原始类时,事件将附加到加载.更改类属性的行为不会影响附加到元素的任何事件.

要实现您想要的功能,您需要使用委托的事件处理程序,该处理程序附加到父元素:

$(document).on('click', '.edit_agent_val', function(e) {
     // some code...
});

$(document).on('click', '.edit_agent_val2', function(e) {
    // some code...
});
Run Code Online (Sandbox Code Playgroud)

请注意,我document这里仅以此为例.在最终工作代码中,您应该使用最接近父元素的两个.edit_agent_val元素.