我创建了一个按钮,其属性名为“loaded”,初始值为“no”。单击按钮后,我正在运行一些 ajax,并在最后尝试将“已加载”属性设置为“是”,以便如果用户多次单击该按钮,ajax 就不会再次运行。
我有这样的事情:http://jsfiddle.net/PDW35/2/ http://jsfiddle.net/PDW35/2/
单击该按钮不会将“已加载”更改为“是”。
但是,如果您在 .attr 调用之后立即发出警报,如下所示:
alert($(this).attr('loaded'));
警报框确实包含“是”,但这没有帮助,因为一旦用户单击,上面的相同代码就会在屏幕上显示“否”警报框。
如果我使用,一切都会以相同的方式运行.prop()
代替.attr()
。我在这里遗漏了一点还是.prop()
and .attr()
只是不适用于自定义属性?
编辑:
根据以下评论使用 ajax 更新了 jsfiddle:http://jsfiddle.net/PDW35/5/ http://jsfiddle.net/PDW35/5/
我不太确定原始代码不起作用的原因,但是$this
似乎是出于某种原因的原因。尝试下面的方法,它似乎有效。Fiddle http://jsfiddle.net/hari_shanx/PDW35/7/在这儿。
一旦找到原因,我会尝试更新答案。
var loaded = $(".preview-button").attr('data-loaded');
if (loaded === "no") {
$.ajax({
success: function (result) {
$(".preview-button").attr('data-loaded', 'yes');
alert($(".preview-button").attr('data-loaded'));
}
});
} else {
alert("data loaded");
}
参考这个thread https://stackoverflow.com/questions/11595266/ajax-this-not-working这似乎就是为什么$this
似乎在 AJAX 调用内部不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)