javascript - 使用 jQuery 动态切换和更改 id

标签 javascript jquery user-interface jquery-selectors twitter-bootstrap

我正在使用带有 jQ​​uery 的 Twitter Bootstrap

我想知道如何在“订阅/取消订阅”之间切换

每次点击都是一个ajax请求,这样用户就可以订阅/取消订阅

一旦用户订阅,我会显示一条消息“已订阅!” 如果用户后悔并想退订怎么办?

我想在一个按钮中同时拥有这两种功能。 我正在动态更改 ID,但它不起作用!

button class="btn" id="subscribe" data-toggle="button" data-loading-text="Loading..."  data-complete-text="Subscribed!">Subscribe
$(document).ready(function () {
        $('#subscribe').button();
        $('#unsubscribe').button();
    });




    $('#unsubscribe').click(function () {   
        $('#unsubscribe').button('loading');

        $.ajax({
            url: "<%= "#{root_url}unsubscribe_from/#{@collection.id}"%>" ,
            type: "GET",
            data: "",
            success: function(data) {
                $('#unsubscribe').button('complete');
                jQuery("#unsubscribe").attr("id","subscribe");
                jQuery("#subscribe").attr("data-complete-text").text("Subscribed!");
                }});
                return false;

            });


$('#subscribe').click(function () {   
    $('#subscribe').button('loading');
    // $('#subscribe').button('reset');
    $.ajax({
        url: "<%= "#{root_url}subscribe_to/#{@collection.id}"%>" ,
        type: "GET",
        data: "",
        success: function(data) {
            $('#subscribe').button('complete');
            jQuery("#subscribe").attr("id","unsubscribe");
            jQuery("#unsubscribe").attr("data-complete-text").text("Unsubscribe!");
            }});
            return false;

        });

最佳答案

$(document).on('click', '#subscribe, #unsubscribe', function(){
    var url; 
    var button_id; 
    var button_text; 
    var self = $(this);  
    self.button('loading');

   if( this.id === 'subscribe' )
    {
        url = "<%= "#{root_url}subscribe_to/#{@collection.id}"%>"; 
        button_id = 'unsubscribe';
        button_text = 'Subscribed!';  
    }
    else 
    {
        url = "<%= "#{root_url}unsubscribe_from/#{@collection.id}"%>"; 
        button_id = 'subscribe'; 
        button_text = 'Unsubscribed!'; 
    }

      $.ajax({
        url: url,
        type: "GET",
        data: "",
        success: function(data) {
               self.button('complete');
               self.attr("id", button_id);
               self.attr("data-complete-text", button_text).text(button_text);
            }});
            return false;

      });
})

关于javascript - 使用 jQuery 动态切换和更改 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10308067/

相关文章:

javascript - 使用正则表达式分解带括号的字符串

javascript - 使用我的代码进行 jQuery 加载事件

JQuery .load 弄乱了 HTML 文本样式

javascript - jquery .html 仅在 Chrome 中重新加载页面

user-interface - 如何创建独特的TextBox设计

javascript - 顶点 : Redirect after login to a page with arguments

javascript - 如何在每个请求中将bigquery响应分段为10000?

javascript - 单击单选按钮时启用输入框

java - java 服务器的无响应 GUI

java - 当 JEditorPane 不会做。 JRex,JRex 为什么你是 JRex?