jquery - 允许 jQuery 函数应用于多个标签

标签 jquery html css twitter-bootstrap

我使用下面的小 jQuery 代码;

<script>
    $(document).ready(function() {
        $('#download-btn').click(function() {
            $("#download-btn").html('<span class="glyphicon glyphicon-saved" aria-hidden="true"></span> Downloaded');
            $("#download-btn").last().addClass("disabled");
        })
    });
</script>

它按预期工作 - 当我单击 ID 为 #download-button 的按钮时,它会添加一个新类,并替换一些 html/文本。现在,这似乎只适用于一个按钮,最上面的那个。看起来像这样;

enter image description here

两个按钮完全一样,

<button id="download-btn" type="button" class="center btn btn-primary">
<span class="glyphicon glyphicon-save" aria-hidden="true"></span> Download</button>

我希望 jQuery 仅应用于被点击的对象,但 任何 具有 id #download-btn 的被点击对象,而不仅仅是最上面的那个。 如果不给每个下载按钮一个单独的唯一 ID 并重复 jQuery 函数,我似乎无法弄清楚如何做到这一点 - 我希望有更好的解决方案。

最佳答案

这里有两件事你应该做

  1. 在您想要应用相同行为的所有按钮上使用一个类 - ID 应该是唯一的
  2. 在处理程序中使用 $(this) 以便操作仅应用于 clicked 按钮(您也可以将这两个操作链接在一起)

html:

<button class="download-btn" type="button" class="center btn btn-primary">
<span class="glyphicon glyphicon-save" aria-hidden="true"></span> Download</button>

jQuery:

$('.download-btn').click(function() {
    $(this).html('<span class="glyphicon glyphicon-saved" aria-hidden="true"></span> Downloaded')
           .addClass("disabled");
})

但是,这里也有进一步的改进 - 您不需要完全替换 html - 相反,您可以只在内部跨度内切换类。

$('.download-btn').click(function() {
    $(this).addClass("disabled")
           .find("span.glyphicon").removeClass("glyphicon-save")
                        .addClass("glyphicon-saved");
})

上面需要一些额外的工作来改变按钮的文本,如果你决定走这条路,我会把它留给你(提示:将文本放在另一个 span 元素中!)

关于jquery - 允许 jQuery 函数应用于多个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33434905/

相关文章:

javascript - Highchart X 轴 chop 显示奇怪的字符

javascript - 使用显示 : table-cell in Firefox 创建 100% 高度 div 的问题

Javascript:烟雾 Logo 效果

html - 如何设置长 HTML 代码的样式

html - Div 容器,左侧有文本,右侧有溢出图像

javascript - jQuery在循环填充的其他元素中获取按钮的ID

Javascript 停止并返回海报 HTML 5 视频

javascript - 随机 jQuery.sortable,将项目放置在正确的位置吗?

html - 无论浏览器大小如何,始终保持图像居中

html - xpath根据非空索引获取<ul>列表元素