jQuery数据值没有更新。怎么解决这个?

时间:2017-04-22 05:11:56

标签: jquery html

jQuery代码:

if($(this).attr('data-status') == 'Yes'){
    alert('if');
    $(this).attr("data-status","No");
}
else{
    alert('else');
    $(this).attr("data-status","Yes");
}

jQuery函数代码:

$(".Notification").click(function(){
  var notification = {
    petid: $(this).attr('data-value'),
    status: $(this).attr('data-status')
  }
  var formurl = '<?php echo base_url();?>index.php/Dashboard/notification';
  $.ajax({
    method: "POST",
    url: formurl,
    data: notification,
    success: function(response){
        if($(this).attr('data-status') == 'Yes'){
            alert('if');
            $(this).attr("data-status","No");
        }
        else{
            alert('else');
            $(this).attr("data-status","Yes");
        }
    }
  })
})

HTML代码:

<input type="checkbox" class="Notification" data-value="6" data-status="Yes" checked="">

我正在尝试更新数据状态的值,但它无法正常工作。它提醒我,否则。但没有更新价值。

1 个答案:

答案 0 :(得分:1)

$(this)不会在成功中引用您的元素,因此请在click事件的顶部定义$(this)

change 事件应该用于复选框(因为不需要click来触发复选框更改事件)

$(".Notification").on("change", function() {

  var ThisIt = $(this);

  var notification = {
    petid: ThisIt.attr('data-value'),
    status: ThisIt.attr('data-status')
  }

  var formurl = '<?php echo base_url();?>index.php/Dashboard/notification';

  $.ajax({
    method: "POST",
    url: formurl,
    data: notification,
    success: function(response){
        if(ThisIt.attr('data-status') == 'Yes'){
            alert('if');
            ThisIt.attr("data-status","No");
        }
        else{
            alert('else');
            ThisIt.attr("data-status","Yes");
        }
    }
  })
})

有关详细信息,请查看:https://stackoverflow.com/a/6394826/3385827