如果小于0,则添加class

时间:2017-07-18 11:50:49

标签: jquery

如果结果小于div#value,如何向0添加课程?

我需要添加两个类:一个如果值小于0,另一个如果它大于0。

我尽我所能,所以我很感激你的帮助! 提前谢谢!



$(function() {

  var valueElement = $('#value');

  function incrementValue(e) {
    valueElement.text(Math.max(parseInt(valueElement.text()) + e.data.increment));
    return false;
  }

  $('#plus').bind('click', {
    increment: 1
  }, incrementValue);

  $('#minus').bind('click', {
    increment: -1
  }, incrementValue);

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="minus" href="#">-</a>
<span id="value">0</span>
<a id="plus" href="#">+</a>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

在计算时,可以使用.toggleClass( className, state )根据条件添加/删除CSS类。

var value = Math.max(parseInt(valueElement.text()) + e.data.increment);
valueElement.text(value).toggleClass('negative', value < 0).toggleClass('positive', value > 0);

$(function() {

  var valueElement = $('#value');
 
  function incrementValue(e) {
    var value = Math.max(parseInt(valueElement.text()) + e.data.increment);
    valueElement.text(value).toggleClass('negative', value < 0).toggleClass('positive', value > 0);

    return false;
  }

  $('#plus').on('click', {
    increment: 1
  }, incrementValue);

  $('#minus').on('click', {
    increment: -1
  }, incrementValue);

});
.positive {
  color: green 
}
.negative {
  color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="minus" href="#">-</a>
<span id="value">0</span>
<a id="plus" href="#">+</a>

对于多个元素

$(function() {

  function incrementValue(e) {
    var valueElement = $(e.target).closest('.container').find('.value');
    
    var value = Math.max(parseInt(valueElement.text()) + e.data.increment);
    valueElement.text(value).toggleClass('negative', value < 0).toggleClass('positive', value > 0);

    return false;
  }

  $('.plus').on('click', {
    increment: 1
  }, incrementValue);

  $('.minus').on('click', {
    increment: -1
  }, incrementValue);

});
.positive {
  color: green
}

.negative {
  color: red
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container">
  <a class="minus" href="#">-</a>
  <span class="value">0</span>
  <a class="plus" href="#">+</a>
</div>

<div class="container">
  <a class="minus" href="#">-</a>
  <span class="value">0</span>
  <a class="plus" href="#">+</a>
</div>

答案 1 :(得分:0)

下面的逻辑应该有效。

您需要返回更改的值。 并且在绑定函数中有一个回调函数,您在其中调用已更改的函数和sencond函数,该函数根据新值添加或删除类。

$(function(){

var valueElement = $('#value');
function incrementValue(e){
   var val =  valueElement.text(Math.max(parseInt(valueElement.text()) + e.data.increment));
    return val;
};

function triggerChange(v) {
    if(v < 0 ) {
        $('#value').addClass('<class-name>');
        //likewise remove the other class
    }
    else if (v > 0) {
        $('#value').addClass('<class-name>');
        //likewise remove other class
    }
    else {
        // remove all classes on zero
    }
};
$('#plus').bind('click', {increment: 1}, function(){
    var val = incrementValue();
    triggerChange(val);
});

$('#minus').bind('click', {increment: -1}, function(){
    var val = incrementValue();
    triggerChange(val);
});

});