Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js-如果为true,则执行操作。如果为false,则撤消操作_Javascript_Jquery - Fatal编程技术网

Javascript js-如果为true,则执行操作。如果为false,则撤消操作

Javascript js-如果为true,则执行操作。如果为false,则撤消操作,javascript,jquery,Javascript,Jquery,每当$home有类“active”时,我尝试将类“pulse”添加到$choose,然后在home没有类“active”时删除pulse,这两个类都可以执行多次。我的函数似乎执行了一次,然后就再也不检查了: $(function () { var $home = $(".tabs-group li:last-child a"); var $choose = $(".tabs-group li"); if($(home).hasClass("active")) {

每当$home有类“active”时,我尝试将类“pulse”添加到$choose,然后在home没有类“active”时删除pulse,这两个类都可以执行多次。我的函数似乎执行了一次,然后就再也不检查了:

$(function () {
    var $home = $(".tabs-group li:last-child a");
    var $choose = $(".tabs-group li");

    if($(home).hasClass("active")) {
    $choose.addClass("pulse");
    };

    if(!($home).hasClass("active")) {
        $choose.removeClass("pulse");
    };
});
我还尝试将其分为两个功能,但这两个功能也不起作用

$(function () {
    var $home = $(".tabs-group li:last-child a");
    var $choose = $(".tabs-group .sidebar .menu li");
    if(($home).hasClass("active")) {
    $choose.addClass("pulse");
    };

});

$(function () {
    var $home = $(".tabs-group li:last-child a");
    var $choose = $(".tabs-group .sidebar .menu li");
    if(!($home).hasClass("active")) {
    $choose.removeClass("pulse");
    };

});

你需要倾听元素的变化

$(function () {
    var $home = $(".tabs-group li:last-child a");
    var $choose = $(".tabs-group li");

    if($(home).hasClass("active")) {
    $choose.addClass("pulse");
    };

    if(!($home).hasClass("active")) {
        $choose.removeClass("pulse");
    };

  $(document).on('change', ".tabs-group li:last-child a", function(event){
    var $choose = $(".tabs-group li");        
    if $(event.target).hasClass('active') {
      $choose.addClass('pulse');
    } else {
      $choose.removeClass('pulse');
    }
  });
});

这是toggleClass的经典用例。请看

请注意,我们使用原始事件(本例中的单击)切换“活动”类,然后基于该设置切换“脉冲”类。如果你试图在“活动”类发生变化时“神奇地”改变“脉冲”类,事情就会变得更难——这里没有一个简单的解决方案。两种选择:

  • 创建一个包装器来更改元素上的类。然后,只要对任何或所有元素调用“classChange”,就可以触发一个“classChange”事件。这假设您可以控制代码和更改类的调用。如果是这种情况,那么您可能可以控制更改“活动”类的内容,因此可能不需要此方法。然而,这种方法在团队设置中可能有意义(如果您可以让团队成员使用“changeClass”包装器!)

  • 创建changeClass事件泛型事件。这并不容易,因为WebKit中没有本机事件,所以需要每隔一段时间轮询元素。看


  • 您可能希望考虑命名空间以避免与其他库发生冲突:

    您的代码自然只会执行一次。看来你想把这件事办成大事。$home的课程什么时候改?什么时候是活动的?是的,$home在活动时具有活动的类
    (function ($) {
      var jqueryMap, onClickHome;
    
      jqueryMap = {
        $home   : $('.tabs-group li:last-child a'),
        $choose : $('.tabs-group li')
      };
    
      onClickHome = function ( event ) {
        event.preventDefault();
        jqueryMap.$home.toggleClass( 'active' );
        jqueryMap.$choose.toggleClass( 
          'pulse', jqueryMap.$home.hasClass( 'active' )
        );
      }
    
      jqueryMap.$home.on( 'click', onClickHome );
    }(jQuery));