javascript - 无需编写冗余代码即可在单击时使用 JQuery 切换文本和类

标签 javascript jquery css

代码按预期工作,但它是多余的,如果我们有多个元素,它就会变旧。 我们如何缩短它?

Codepen Demo

$(".i1").click(function () {
    $(".i1 .added").fadeOut(function () {
    $(".i1 .added").text(($(".i1 .added").text() == 'Deposit') ? 'Added' : 
        'Deposit').fadeIn();
        $(this).toggleClass("highlight");
    })
})
    $(".i2").click(function () {
    $(".i2 .added").fadeOut(function () {
    $(".i2 .added").text(($(".i2 .added").text() == 'Deposit') ? 'Added' : 
        'Deposit').fadeIn();
        $(this).toggleClass("highlight");
    })
})
$(".i3").click(function () {
    $(".i3 .added").fadeOut(function () {
    $(".i3 .added").text(($(".i3 .added").text() == 'Deposit') ? 'Added' : 
        'Deposit').fadeIn();
        $(this).toggleClass("highlight");
    })
})

最佳答案

你可以把你的js代码改成this

$(".item-btn").click(function () {
  $(this).find('.added').fadeOut(function () {
    var text = $(this).text();

    $(this).text((text == 'Deposit') ? 'Added' : 'Deposit').fadeIn();
    $(this).toggleClass("highlight");
  })
})

关于javascript - 无需编写冗余代码即可在单击时使用 JQuery 切换文本和类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027168/

相关文章:

Jquery动态添加下拉菜单(克隆)

css - 侧边栏 + 2 个扩展内容 div

javascript - 隐藏/显示所有子 Div - JS

javascript - jQuery setTimeout - 无法读取未定义的属性 'preventDefault'

javascript - 将项目推送到嵌套对象数组

javascript - Angular 网格反向列

javascript - 有没有办法选择具有特定属性值的所有元素?

javascript - 复杂数组排序

javascript - Sencha touch 2 中的音频和视频并非始终失败

css - 延迟加载和 Isotope - 在 Firefox 中工作,但在 IE 中不工作