我有一个通过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;
答案 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是异步的,所以不要指望它会立即改变...