首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript在鼠标单击时更改样式

问Javascript在鼠标单击时更改样式
EN

Stack Overflow用户
提问于 2011-06-01 18:40:12
回答 2查看 1.8K关注 0票数 2

我有一个小的jquery脚本:

代码语言:javascript
复制
 $('.product_types > li').click(function() {
 $(this)
    .css('backgroundColor','#EE178C')
    .siblings()
    .css('backgroundColor','#ffffff');
   // $('.product_types > li').removeClass(backgroundColor);

});

这给我带来了一个div onclick。问题是我只想让最后点击的元素着色。我不知道我是否可以在每次点击后删除样式( css样式)?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-01 18:48:32

我会使用像.lastClicked这样的css类,并在单击新元素时使用jquery删除.lastClicked的所有实例。

代码语言:javascript
复制
.lastClicked{ background-color:#EE178C; }
.lastClicked (siblingName) { background-color: #ffffff; }

您的jquery代码将如下所示:

代码语言:javascript
复制
$('.product_types > li').click(function() { 
  $(".lastClicked").removeClass("lastClicked");
  $(this).addClass("lastClicked");});
票数 3
EN

Stack Overflow用户

发布于 2011-06-01 18:47:35

您需要一个变量来存储实际的彩色div并删除其中的样式。下面这样的代码(未经过测试)应该可以解决这个问题:

代码语言:javascript
复制
(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属性。这可以更好地分离代码逻辑和显示。

我还将所有内容放在一个闭包中,这样变量就不会被其他脚本错误地覆盖。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6199853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档