Javascript在鼠标单击时更改样式
Javascript change style on mouse click
我有一个小jquery脚本:
$('.product_types > li').click(function() {
$(this)
.css('backgroundColor','#EE178C')
.siblings()
.css('backgroundColor','#ffffff');
// $('.product_types > li').removeClass(backgroundColor);
});
这给我一个div onclick的颜色。问题是,我只希望最后一个点击的元素是彩色的。我不知道我可以在每次点击后删除样式(css样式)吗?
感谢
我会使用类似.lastClicked
的css类,并在单击新元素时使用jquery删除.lastClicked
的所有实例。
.lastClicked{ background-color:#EE178C; }
.lastClicked (siblingName) { background-color: #ffffff; }
您的jquery代码看起来像:
$('.product_types > li').click(function() {
$(".lastClicked").removeClass("lastClicked");
$(this).addClass("lastClicked");});
您可以将最后单击的元素存储在全局变量中,并在单击时重置其颜色:
var lastElm=空$('.product_types>li').click(function(){if(lastElm)$(lastElm).css('backgroundColor','#[Your original color]')lastElm=这个;$(这个).css('backgroundColor','#EE178C').siblings().css('backgroundColor','#ffffff');//$('.product_types>li').removeClass(backgroundColor);});
您需要一个变量来存储实际的彩色div并删除其上的样式
(function(){
var coloredDiv = null;
$('.product_types > li').click(function() {
var item = $(this);
if(coloredDiv != null) coloredDiv.removeClass('someCSSClassThatColorMyDiv');
item.addClass('someCSSClassThatColorMyDiv');
coloredDiv = item;
});
})();
注意:我还建议使用CSS类,而不是在Javascript中手动设置CSS属性。这样可以更好地分离代码逻辑和显示。
我还把整个东西放在一个闭包中,这样变量就不会被其他脚本错误地覆盖。
相关文章:
- 设置单击编辑输出的样式
- 使用javascript单击同一按钮,在两种样式之间更改css值
- 如何在单击和单击不同的按钮时更改按钮的样式,它应该更改为默认值
- 单击上一个或继续按钮时更改选项卡样式
- Javascript:单击后更改元素的样式
- 单击隐藏列表样式
- (JavaScript/HTML)如何在单击按钮时更改样式属性中的显示
- 悬停样式应该在动态加载多级菜单时保持单击状态
- 单击时更改 DIV 的样式,取消单击时再次更改
- 如何通过单击按钮更改 geojson 样式
- 单选按钮 - 单击时设置背景样式
- 多个按钮,每个按钮都有不同的样式 - 单击后需要保持悬停状态
- 在 CTRL+P 和单击按钮时打印样式不同
- 将光标样式更改为可单击标记的指针
- 使用 javascript on单击以设置当前所选样式单选按钮
- 使用javascript / jquery更改元素焦点(单击)上的输入/文本区域样式表
- Jquery动画鼠标光标不,单击后样式不更改
- jQuery:使用 parent()、next() 单击单选按钮上的样式和取消样式
- 使用 jQuery 更改单击元素的样式,并从具有相同类的其他元素中删除该样式
- 如何使用ng样式单击时更新元素样式