如何通过ajax获取修改后的属性?

时间:2016-08-05 19:15:02

标签: javascript jquery html ajax html5

我有一个通过ajax更改元素的数据属性的函数。

下次我想获取相同元素的修改数据属性,但是我获得了之前数据属性的值,尽管属性已更改。

那么,我做错了什么?

示例:



$(function(){
  $(".class1").on("click", function(){
     var attribute_data = $(this).data("attribute");
     $.ajax({
       ... // Handle
       success:function(data){
           $(this).data("attribute") === "2";
       }
     });
   }); 
  
  
  
  $(".class1").on("click",function(){
    var modified_attribute_data = $(this).data("attribute");
    console.log(modified_attribute_data); // will return "1" instead "2"
  });

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="class1" data-attribute="1">
  Content
 </div>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

如果你这样做:

$(".class1").on("dblclick", function(){
      $(this).hide();
      var attribute_data = $(this).data("attribute");
      $.ajax({
         ... // Handle
         success:function(data){
         $(this).data("attribute") === "2";
         $(this).show();
      }
   });
});

然后点击:

  $(".class1").on("click",function(){
    var modified_attribute_data = $(this).data("attribute");
    console.log(modified_attribute_data); // will return "2"
  });

我建议将每个触发它的事件分开,或以某种方式阻止一个或另一个像切换类...并记住ajax是异步的,所以不要指望它会立即改变...