首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery单击replace,再次单击replace

jquery单击replace,再次单击replace
EN

Stack Overflow用户
提问于 2011-11-05 18:21:23
回答 3查看 4.2K关注 0票数 1

只是一个简单的问题,我如何告诉jquery在第一次单击时执行action1,当用户再次单击时,它应该执行操作,然后重新启动操作?例如:用户点击like,文本应更改为不同,当用户按下不同时,它应更改为like,以此类推。

代码语言:javascript
复制
<a href="#" class="like">Like</a>

$('.like').click(function(){
//ajax
    $(this).html('Remove like');
},function(){
    $(this).html('like');
});

但它似乎只起作用一次,比如当用户单击它时,它会更改为删除,而当我再次单击时,什么也不会发生

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-05 18:25:57

使用jquery toggle handler

代码语言:javascript
复制
.toggle( handler(eventObject), handler(eventObject) [, handler(eventObject)] )

handler(eventObject)  A function to execute every even time the element is clicked.
handler(eventObject)  A function to execute every odd time the element is clicked.
handler(eventObject)  Additional handlers to cycle through after clicks.

例如:

代码语言:javascript
复制
$('.like').toggle(function() {
    //ajax
    $(this).html('Remove like');
}, function() {
    $(this).html('like');
});
票数 4
EN

Stack Overflow用户

发布于 2011-11-05 18:24:43

尝试:

代码语言:javascript
复制
var first = true;

$('.like').click(function(){
  if(first){
    $(this).html('Remove like');
    first = false;
}else{

    $(this).html('like');
    first = true;
}
});

或者:

代码语言:javascript
复制
var first = true;

$('.like').click(function(){
  var text = "";
    ($(this).html() == "like"){
       text = "Remove like";
    }else{
       text = "like";
    }
    $(this).html(text)
});
票数 -1
EN

Stack Overflow用户

发布于 2011-11-05 18:33:41

您可以按如下方式执行此操作

HTML

代码语言:javascript
复制
<a href="#" class="like" id="button">Like</a>

Jquery

代码语言:javascript
复制
$("#button").click(function(event){
    event.preventDefault();

    if($(this).hasClass('like'))
    {

        $(this).html('Remove like');
        $(this).removeClass("like");
        $(this).addClass("unlike");
    }else{

        $(this).html('like');
        $(this).removeClass("unlike");
        $(this).addClass("like");
    }

});

Live Demo

编辑:更简单

代码语言:javascript
复制
$("#button").click(function(){
    if($(this).hasClass('like'))
    {        
        $(this).html('Remove like');
        $(this).toggleClass("like unlike");

    }else{        
        $(this).html('like');
        $(this).toggleClass("like unlike");
    }

});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8019538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档