jQuery在更改后会记住旧的类/id
jQuery remembers the old class/id after changing
我对jQuery有问题。我得到了两个jQuery点击事件。
$('.btn-subscribe').click(function() {
$.ajax({
type: 'POST',
url: '{{ path('subscribe') }}',
data: 'id={{ user.getId }}',
success: function(data){
if(data == 'subscribed') {
alert(data);
$('.btn-subscribe').removeClass('btn-subscribe').addClass('btn-unsubscribe').text('Отписаться');
}
else {
alert(data);
}
}
});
});
$('.btn-unsubscribe').click(function() {
$.ajax({
type: 'POST',
url: '{{ path('unsubscribe') }}',
data: 'id={{ user.getId }}',
success: function(data){
if(data == 'unsubscribed') {
alert(data);
$('.btn-unsubscribe').removeClass('btn-unsubscribe').addClass('btn-subscribe').text('Подписаться');
}
else {
alert(data);
}
}
});
});
点击后,会出现一个ajax请求。如果响应是ok,我将按钮类(btn-subscribe改为btn-unsubscribe,btn-unssubscribe更改为btn-subscript)。因此,当按钮类发生更改时,它必须调用新的按钮事件,但仍然是由旧类调用事件。
如何解决此问题?
使用事件委派并按类注册侦听器,而不是在按钮本身上。
var buttons = $("button");
buttons.on("click", ".btn-subscribe", function (){//...etc});
buttons.on("click", ".btn-unsubscribe", function (){// ...etc});
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 获取打开jquery对话框的button的id
- jQuery mobile not going through ID
- 如何将li类更改为li id's在Jquery中
- 如何使用jQuery迭代id名称的变体(如idname1、idname2)
- 获取不带Id JQuery的复选框值
- 从ID Jquery类获取返回值时出现问题
- attr() 不会更改 id - jquery
- 通过 ID jquery 限制文本区域字符
- 获取选定的行id jquery数据表行选择
- 如何在asp.net mvc中向Action方法发布简单ID(jquery-ajax)
- 添加文本到Javascript Span id jquery
- 动态获取控件ID - JQuery
- 验证选择字段取决于id jquery
- Increment id jquery
- 使用id jquery中的空格
- 根据HTML表的ID jQuery/javaScript对数据进行排序
- 以引号结束id - jquery
- 当draggable被拖放到可拖放区域时添加ID - jQuery Draggables
- 表格ID &jQuery中的名称