jquery - 在jquery中为按钮添加一个类

标签 jquery css

我正在尝试在一些 ajax 之后向我的按钮添加一个 css 类:

$('a.vote-up-0').click(function() {

    var id = $(this).siblings('.reply-id').val();
    var ajax_auth_token = $('#auth_token').val();


    $.post('user/?action=ajax', {
        vote_type: 'up',
        reply_id: id,
        auth_token: ajax_auth_token
    }, function(data, return_status) {   

        var json_data = jQuery.parseJSON(data);

        switch(json_data.r_message)
        {
           case "success": 
              output = "Yay it works!"; // change 
               alert(output);
               $(this).addClass('vote-up-1'); // ** the culprit **
           break;

警报有效,但它不会向其添加类 vote-up-1。页面上有多个相同类别的实例(即 vote-up-0),因此如果我将(this)更改为“vote-up-0”,它会更改所有实例。有人有什么想法吗?

最佳答案

在“点击”处理程序的顶部,存储 this 值:

var theButton = this;

然后,在您的“.post()”处理程序中:

$(theButton).addClass('vote-up-1');

问题是当 jQuery 调用您的“.post()”处理程序时,this 不会引用按钮。因此,您将一个副本保存到一个局部变量中,它会在适当的时候等待处理程序。

关于jquery - 在jquery中为按钮添加一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5695119/

相关文章:

javascript - 如何使现有的 javascript/css 文件在 Google Chrome 中兼容?

javascript - 有没有办法在代码后面使用变量来引用 asp ID

jquery - 如何使用 JQuery 获取属性等于某个值的所有节点?

javascript - 等待在 location.href 重定向之前设置 CORS cookie

html - 在 Firefox 中按比例调整图像大小

javascript - HTML5 中的多个动态 Canvas

jquery - Bootstrap 导航栏不会以适当的方式折叠

javascript - 将 case 动态添加到 switch

javascript - 如何仅在某些部分禁用输入输入?

html - 使用 CSS 居中文本