喜欢/不喜欢jQuery中的按钮系统

时间:2016-12-16 09:50:19

标签: javascript jquery html css

我希望有一个喜欢和不喜欢的按钮,当点击其中一个时,它会将颜色更改为红色。但是,当我点击两者时,喜欢和不喜欢的图标都会变成红色。我希望其中只有一个在任何时候都是红色的,而不是两个都是。我该如何解决?

我想知道我是否可以通过在Jquery OR中使用CSS和.hasClass,.removeClass和.addClass来缩短代码。

下面是我写的jQuery代码:

$('#Like').on({
'click': function() {
    if($('#Like').attr('src') == 'images/Like.png') {
        $('#Like').attr('src','images/Liked.png');
        $('#Dislike').attr('src') == 'images/Dislike.png');
    }
    else {
        $('#Like').attr('src','images/Like.png');
    }
}
});

$('#Dislike').on({
'click': function() {
    if($('#Dislike').attr('src') == 'images/Dislike.png') {
        $('#Dislike').attr('src','images/Disliked.png');
        $('#heartLike').attr('src') == 'images/Like.png');
    }
    else {
        $('#Dislike').attr('src','images/Dislike.png');
    }
}
});

在这里,#like和#dislike是原始的喜欢和不喜欢的图标。

Like.png和Dislike.png是没有颜色的图像,Liked.png和Disliked.png是填充红色的图像。

3 个答案:

答案 0 :(得分:2)

您应该使用公共类来绑定点击处理程序,特定类,即likedislike CSS类的状态,我还建议您使用CSS规则显示icon。这是一个通用的例子



$('span.common').on('click', function() {
  $(this).toggleClass('like dislike')
});

.like {
  background-color: green
}
.dislike {
  background-color: red
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="common like">loren</span>
<br />
<span class="common dislike">ipsum</span>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$('#Like').on({
'click': function() {
    if($('#Like').attr('src') == 'images/Like.png') {
        $('#Like').attr('src','images/Liked.png');
        $('#Dislike').attr('src','images/Dislike.png');
    }
    else {
        $('#Like').attr('src','images/Like.png');
    }
}
});

$('#Dislike').on({
'click': function() {
    if($('#Dislike').attr('src') == 'images/Dislike.png') {
        $('#Dislike').attr('src','images/Disliked.png');
        $('#heartLike').attr('src','images/Like.png');
    }
    else {
        $('#Dislike').attr('src','images/Dislike.png');
    }
}
});

答案 2 :(得分:0)

试试这个,你在代码中使用了不同的ID代码。在不喜欢点击时你改变了heartLike的url,将其更改为Like。

 self.districtTableView.register(UINib(nibName: "PlaceCollectionViewCell", bundle: nil), forCellReuseIdentifier: "placeCell")

 func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    return false
}

func textFieldDidEndEditing(_ textField: UITextField) {
    // TODO: Your app can do something when textField finishes editing

    print("The textField ended editing. Do something based on app requirements.")
}

func numberOfSections(in tableView: UITableView) -> Int {
     return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return districts.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "placeCell") as! PlaceTableViewCell
    // Set text from the data model
    cell.distLabel.text = districts[indexPath.row]
    cell.textLabel?.font = distTextField.font
    return cell

祝你好运:)