javascript - 非常简单的 jQuery 剧透功能已经成功了一半

标签 javascript jquery html

我已经使用以下代码实现了一个真正简单的 jQuery 剧透功能:

HTML:

<a href="" onclick="return false" class="spoiler" content="spoiled content">
    Reveal spoiler
</a>


jQuery/Javascript:

$('a.spoiler').click(function(){
    $text = "<a href=\"\" onclick=\"return false\" class=\"spoiler\" content=\"" + $(this).text() + "\">" + $(this).attr("content") + "</a>"; 
    $(this).replaceWith($text);
});


基本上,我只希望扰流板的内容属性与标签之间的文本交换。它适用于第一次点击,但是当再次点击时它不会切换回来。

我有什么办法可以无限期地交换内容吗?

谢谢!

最佳答案

简单使用

$('a.spoiler').click(function(){
    var text = $(this).text(); 
    var content = $(this).attr("content");
    $(this).text(content).attr("content", text)
});

DEMO

否则,您需要使用Event Delegation使用 .on()委托(delegate)事件方法,因为您正在使用 replaceWith,它是删除与事件绑定(bind)的元素。

$(document).on('click','a.spoiler',function(){
    $text = "<a href=\"\" onclick=\"return false\" class=\"spoiler\" content=\"" + $(this).text() + "\">" + $(this).attr("content") + "</a>"; 
    $(this).replaceWith($text);
});

DEMO

关于javascript - 非常简单的 jQuery 剧透功能已经成功了一半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25722713/

相关文章:

javascript - WebDriver 操作的工作原理

javascript - Firebug 在 ajax 调用后停止 window.location

jquery - Bootstrap 标签输入无法使用文档就绪

html - 在搜索引擎中显示永久链接

javascript - 插入图片的文件路径

javascript - AngularJS 在重复 block 之外和脚本标记中使用 ng-repeat 值

html - Bootstrap 容器在应该居中时稍微向左倾斜

javascript - Whatsapp:无法与 Javascript 共享当前链接

javascript - 当我尝试将 vis.js 与 Svelte 结合使用时,出现意外标记 'export'

javascript - 预加载图像并插入到 DOM 中