首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过jQuery修改文本来切换单词?

问通过jQuery修改文本来切换单词?
EN

Stack Overflow用户
提问于 2015-01-06 11:53:33
回答 4查看 228关注 0票数 2

当我单击按钮时,会添加一个类,文本将从“取得联系”更改为“工作”。但是,当我再次单击“工作状态”按钮时,文本不会更改为“取得联系”。为什么不动呢?

小提琴:http://jsfiddle.net/cLgkwjhb/

代码语言:javascript
复制
<a id="contact-button" href="#">Get in touch</a>

CSS

代码语言:javascript
复制
#contact-button {
    background: #000;
    background-size: 24px;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: bold;
    padding: 10px 20px;
}

JS

代码语言:javascript
复制
jQuery('#contact-button').click(function( e ){

    e.preventDefault();
    jQuery(this).addClass('work-button').text('Work');

});

jQuery('#contact-button.work-button').click(function( e ){

    e.preventDefault();
    jQuery(this).removeClass('work-button').text('Get in touch');

});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-01-06 11:58:49

如果单击计数可被2((c++ % 2 == 0))整除,则可以将文本更改为Work Get in touch,而不是添加可以跟踪单击的类。

​

代码语言:javascript
复制
var c = 0;
jQuery('#contact-button').click(function(e) {
  e.preventDefault();
  jQuery(this).text((c++ % 2 == 0) ? 'Work' : 'Get in touch');
});
代码语言:javascript
复制
#contact-button {
  background: #000;
  background-size: 24px;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
  font-weight: bold;
  padding: 10px 20px;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a id="contact-button" href="#">Get in touch</a>

​

票数 2
EN

Stack Overflow用户

发布于 2015-01-06 12:02:34

你可以这样做:

小提琴

代码语言:javascript
复制
    var work = false;
    jQuery('#contact-button').click(function( e ){

        e.preventDefault();
        work = !work;
        jQuery(this).toggleClass('work-button').text(work ? 'Work' : 'Get in touch');


    });

基本上使用一个事件侦听器,因为在您的原始版本中,两个函数都被调用。

票数 2
EN

Stack Overflow用户

发布于 2015-01-06 11:58:36

它不能工作,因为当您设置单击处理程序时,#contact-button.work-button不存在。由于稍后添加了类,所以在代码行运行时,jQuery无法将任何元素与选择器匹配。

您可以做的是在一个单击处理程序中使用所有的逻辑。

代码语言:javascript
复制
jQuery('#contact-button').click(function (e) {
    e.preventDefault();
    jQuery(this).toggleClass('work-button').text(function (i, text) {
        return text === 'Work' ? 'Get in touch' : 'Work';
    });
});

​

代码语言:javascript
复制
jQuery('#contact-button').click(function (e) {
    e.preventDefault();
    jQuery(this).toggleClass('work-button').text(function (i, text) {
        return text === 'Work' ? 'Get in touch' : 'Work';
    });
});
代码语言:javascript
复制
#contact-button {
    background: #000;
    background-size: 24px;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
    font-weight: bold;
    padding: 10px 20px;
}
代码语言:javascript
复制
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a id="contact-button" href="#">Get in touch</a>

​

或者使用像.on()这样的动态选择器,但这并不那么优雅:)

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

https://stackoverflow.com/questions/27798121

复制
相关文章

相似问题

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