我遇到了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)
任何人都可以帮我解决这个问题吗?
问题是因为当元素仍然具有原始类时,事件将附加到加载.更改类属性的行为不会影响附加到元素的任何事件.
要实现您想要的功能,您需要使用委托的事件处理程序,该处理程序附加到父元素:
$(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元素.