尝试在悬停时为多个跨创建DRY划线文本
Trying to create DRY strikethrough text for multiple spans while hovering
我试图创建一个简单的网页,你可以悬停在一组字。当你悬停的时候,我希望你没有悬停的所有其他单词都变成三振出局。
HTML是:
<div class="row col-xs-12" id="jobs"> <h2><span class="selector">Writer and Editor</span>, <span class="selector">Social Media Slayer</span>, <span class="selector">Amateur Developer</span>.</h2> </div>
现在我有一个简单的jQuery函数,当我将鼠标悬停在每个元素上时,它会改变span的字体颜色,如下所示:
$('.selector').hover(function(){
$(this).css('color', '#fddbd1');
}, function() {
$(this).css('color', 'white');
});
我想做的是也有一个脚本,在悬停,罢工在每个跨度的文本没有被悬停在。我还希望当您单击每个跨度时,其他跨度中的三振出局将保留,直到您单击其他地方。
我知道如何用大量重复的代码做到这一点,但我希望使它很好和DRY。
删除所有没有悬停在span类选择器上的span,并在单击某个元素时保留删除,在单击另一个元素时删除。
$('.selector').hover(function(){
// Cleanup / Reset to default position
$('.selector').removeClass('clicked');
$('.selector').css('text-decoration', 'none');
$('.selector').not(this).each(function() {
$(this).css('text-decoration', 'line-through');
});
}, function() {
if(!$(this).hasClass('clicked'))
{
$('.selector').not(this).each(function() {
$(this).css('text-decoration', 'none');
});
}
});
$('.selector').click(function(evt) {
$('.selector').not(this).each(function() {
$(this).css('text-decoration', 'line-through');
});
$(this).addClass('clicked');
});
$('body').click(function(evt) {
if(!$(evt.target).hasClass('clicked')) {
$('.selector').css('text-decoration', 'none');
}
});
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 为effect Composer创建GodRays效果过程
- 从javascript创建一个列表
- onkeyup无法动态创建多个文本区域
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何访问声音管理器2创建的声音对象
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 使用Facebook live API创建实时视频对象时的隐私设置
- 在动态创建的元素上获取对特定选择器的引用
- 如何创建带有插槽的vue js组件预加载程序
- 如何在创建键时引用来自同一对象的键
- 如何创建JSON数组
- 从html创建一个指令,该指令按类名应用函数
- 使用Javascript创建测验页面
- 更改使用Chart.js创建的图表中的轴线颜色
- JavaScript名称空间和对象创建
- DRY——创建表的循环
- 尝试在悬停时为多个跨创建DRY划线文本
- 如何借助node.js中的flow.js(用于异步调用)以DRY模式创建模型