选择第一个后,更改div的图标颜色

时间:2016-07-04 17:36:04

标签: javascript jquery

我拥有的内容: div会在点击后更改颜色。

我想做什么:第一次点击会改变背景(我做了),但第二次点击只会改变其他div的图标颜色。

所以,如果我点击任何div

首先会改变背景颜色(我做了)

如果我点击其他任何一个将更改图标颜色。

我希望在第二次点击后,向我显示一条警告,说'你当时可以选择2个div'

我在js和jquery中非常全新,这是我能做的最大努力。

HTML:

<div class="box"><i class="fa fa-lg fa-trash"></i></div>
<div class="box"><i class="fa fa-lg fa-trash"></i></div>
<div class="box"><i class="fa fa-lg fa-trash"></i></div>
<div class="box"><i class="fa fa-lg fa-trash"></i></div> 

JS:

$(document).ready(function () {
    var $box = $('.box').mousedown(function () {
        $(this).toggleClass('highlight');
        var flag = $(this).hasClass('highlight')
        $box.on('mouseenter.highlight', function () {
            $(this).toggleClass('highlight', flag);
        });
    });
    $(document).mouseup(function () {
        $box.off('mouseenter.highlight')
    })
});

的CSS:

.box {
    float: left;
    height: 100px;
    width: 100px;
    border: 1px solid #000;
    margin-right: 10px;
}
.highlight {
    background: #0000FF;
}

.fa-trash {
  color:red;
}

.fa-trash{
  color:green;
}

这是我的代码:https://jsfiddle.net/wv4f2hda/4/

2 个答案:

答案 0 :(得分:2)

def main():
    stringInput = raw_input("Enter the string:")
    ssCount = 0
    h5Count = 0
    finalString = ""
    ssString = ""
    h5String = ""
    ssCont = True
    h5Cont = True
    for i in range(0, len(stringInput), 1):
        if stringInput[i] == ".":
            h5Cont = False
            if ssCont:
                ssCount = ssCount + 1
                ssString = "ss(" + str(ssCount) + ")"
                ssCont = True
            else:
                finalString = finalString + ssString
                ssCont = True
                ssCount = 1
        elif stringInput[i] == "(":
            ssCont = False
            if h5Cont:
                h5Count = h5Count + 1
                h5String = "h5(" + str(h5Count) + ")"
                h5Cont = True
            else:
                finalString = finalString + h5String
                h5Cont = True
                h5Count = 1

    print finalString
main()

试试这个

答案 1 :(得分:1)

试试这个脚本,只需创建一个带有true和false的标志,可能会解决你的问题

&#13;
&#13;
$(document).ready(function () {

    var click = false;
    $(document).on('click', '.box', function(){
    	if($(this).hasClass('highlight')){
      	$(this).removeClass('highlight');
        click = false;
        return false;
      }
    	if(!click){
      	$(this).find("i").removeClass('red');
      	 $(this).addClass('highlight');
         click = true;
      }else{
      	$(this).find("i").toggleClass('red');
      }
    });
});
&#13;
.box {
    float: left;
    height: 100px;
    width: 100px;
    border: 1px solid #000;
    margin-right: 10px;
}
.highlight {
    background: #0000FF;
}

.fa-trash.red {
  color:red;
}

.fa-trash{
  color:green;
}
&#13;
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box"><i class="fa fa-lg fa-trash"></i></div>
<div class="box"><i class="fa fa-lg fa-trash"></i></div>
<div class="box"><i class="fa fa-lg fa-trash"></i></div>
<div class="box"><i class="fa fa-lg fa-trash"></i></div>
&#13;
&#13;
&#13;