jQuery-data()==';某物';总是返回false

jQuery-data()==';某物';总是返回false,jquery,Jquery,我试图根据数据属性的值运行一个函数。 但当我运行此命令时,它总是返回false: alert(jQuery(this).data('loaded') == 'no'); 但我的数据属性设置为“否”,当我发出警报时 alert(jQuery(this).data('loaded')); 它返回正确的数据属性值 更新 jQuery('a').click(function(e) { e.preventDefault(); if (jQuery(this).data('loaded

我试图根据数据属性的值运行一个函数。 但当我运行此命令时,它总是返回
false

alert(jQuery(this).data('loaded') == 'no');
但我的数据属性设置为“否”,当我发出警报时

alert(jQuery(this).data('loaded'));
它返回正确的数据属性值

更新

jQuery('a').click(function(e) {
    e.preventDefault();

    if (jQuery(this).data('loaded') == 'no'){
        ajax();
        jQuery(this).attr('data-loaded', 'yes');    
    }
});
HTML


事实上,你正试图在点击事件中做到这一点,但你的主播却什么都没有。因此,请更改标记并尝试

<a class="btn" href="#" data-loaded="no">Click Here</a>

您的HTML(或设置属性的相关代码)是什么样子的?
$('').data('loaded')=='no'
为我返回
true
。在您的上下文中,这是什么?似乎表明这很好…你的代码在我看来很好。问题出在别处。在
ajax
调用完成时设置属性。在这里,您可以在调用
ajax()后立即设置它但是
ajax
将在晚些时候完成。它可能有边框和填充,这使得它可以在没有文本的情况下单击。@Blender是的,您正在编写,也可以通过它来实现。在这里我只是告诉他原因,让他知道使用点击事件。谢谢你的回答,答案与我无关,但会帮助未来的用户。我在给+1@user1983017请让我知道,为什么它对你没有用处?你还想要什么?
<a class="btn" href="#" data-loaded="no">Click Here</a>
a
{
    padding:15px;
    border:1px solid #CCC;
}