GVKun编程网logo

jQuery removeClass 通配符

22

想了解jQueryremoveClass通配符的新动态吗?本文将为您提供详细的信息,此外,我们还将为您介绍关于addClass和removeClass在jQuery–不删除类、javascript–j

想了解jQuery removeClass 通配符的新动态吗?本文将为您提供详细的信息,此外,我们还将为您介绍关于addClass和removeClass在jQuery – 不删除类、javascript – jQuery使用.removeClass()和.addClass()切换类无法正常工作、javascript – jQuery同时addClass和removeClass、javascript – 使用jQuery动画addClass / removeClass的新知识。

本文目录一览:

jQuery removeClass 通配符

jQuery removeClass 通配符

有什么简单的方法可以删除所有匹配的类,例如,

color-*

所以如果我有一个元素:

<div id="hello"></div>

删除后,它将是

<div id="hello"></div>

谢谢!

答案1

小编典典

removeClass函数从jQuery
1.4开始接受一个函数参数。

$("#hello").removeClass (function (index, className) {    return (className.match (/(^|\s)color-\S+/g) || []).join('' '');});

现场示例:http: //jsfiddle.net/xa9xS/1409/

addClass和removeClass在jQuery – 不删除类

addClass和removeClass在jQuery – 不删除类

我正在努力做一些非常简单的事情。基本上我有一个可点击的div’热点’,当您点击它填充屏幕并显示一些内容。我通过简单地改变div的类别,去除“现货”和添加“成长”,实现了这一点,并且还有一些CSS动画使其成长。这工作正常

问题是,在这个div内有一个close_button,目前只是文本。我希望这样可以将类别切换回去 – 即删除成长和读取的点。单击时不执行此操作。我相信这是在DOM加载时没有这些类的元素,但我是jQuery的新手,不知道如何解决这个问题。

我认为这可能是一个更明智的做法,有人可以指出我的方向吗?我会很感激我已经尝试使用toggleClass,而不是无效。

$( document ).ready(function() {      
    $(".clickable").click(function() {  
        $(this).addClass("grown");  
        $(this).removeClass("spot");
    });   

    $(".close_button").click(function() {  
        alert (this);
        $("#spot1").removeClass("grown");  
        $("#spot1").addClass("spot");
    });   
});

更新:

我现在使用这段代码,

$( document ).ready(function() {   
    $(document).on("click",".close_button",function () { 
        alert ("oi");
        $("#spot1").addClass("spot");
        $("#spot1").removeClass("grown");
    });  


    $(document).on("click",".clickable",function () {
        if ($(this).hasClass("spot")){
            $(this).addClass("grown");
            $(this).removeClass("spot");
        }
    });
});

奇怪的是,close_button函数仍然不会添加’spot’或删除’grow’,虽然它会添加任何其他类,它会删除其他类…我添加了if子句,因为我认为或许这两个函数都被触发在同一个时间相互破坏,但似乎没有任何区别

解决方法

会发生什么情况,你的关闭按钮放在你的.clickable div内,所以click事件将被触发这两个元素。

事件冒泡将使点击事件从子节点传播到他们的父母。所以你的.close_button回调将被执行,当达到.clickable时,它将再次切换类。因为这个运行非常快,你不会注意到这两个事件发生了。

/ \
--------------------| |-----------------
| .clickable        | |                |
|   ----------------| |-----------     |
|   | .close_button | |          |     |
|   ------------------------------     |
|             event bubbling           |
----------------------------------------

为了防止事件达到.clickable,您需要将事件参数添加到回调函数中,然后调用stopPropagation方法。

$(".close_button").click(function (e) { 
    $("#spot1").addClass("spot");
    $("#spot1").removeClass("grown");
    e.stopPropagation();
});

小提琴:http://jsfiddle.net/u4GCk/1/

有关事件顺序的更多信息:http://www.quirksmode.org/js/events_order.html(这是我选择那个漂亮的ASCII艺术=])

javascript – jQuery使用.removeClass()和.addClass()切换类无法正常工作

javascript – jQuery使用.removeClass()和.addClass()切换类无法正常工作

我按照下面的代码实现了切换方式.
HTML:

<table>
    <thead>
        <tr>
            <th><divhttps://www.jb51.cc/tag/Box/" target="_blank">BoxAll"></div></th>
            <th>Products</th>
        </tr>
    </thead>
    <tr>
        <td><divhttps://www.jb51.cc/tag/Box/" target="_blank">Box"></div></td>
        <td>ABCD</td>
    </tr>
    <tr>
        <td><divhttps://www.jb51.cc/tag/Box/" target="_blank">Box"></div></td>
        <td>PQRS</td>
    </tr>
</table>

CSS:

.unCheckedCheckBox, .unCheckedCheckBoxAll
{
   width: 25px;
   height: 25px;
   margin-top: -4px;
   background: transparent url(http://i.stack.imgur.com/tsaPu.png) top left no-repeat;
}
.CheckedCheckBox,.CheckedCheckBoxAll
{
   width: 25px;
   height: 25px;
   margin-top: -4px;
   background: transparent url(http://i.stack.imgur.com/tsaPu.png) 0 -60px;
}

jQuery的:

$(".CheckedCheckBox").click(function () {
    $(this).removeClass('CheckedCheckBox').addClass('unCheckedCheckBox');
    if ($(".CheckedCheckBox").length == 0) {
        $('.CheckedCheckBoxAll').removeClass('CheckedCheckBoxAll').addClass('unCheckedCheckBoxAll');
    }
});
$(".unCheckedCheckBox").click(function () {
    $(this).removeClass('unCheckedCheckBox').addClass('CheckedCheckBox');
    if ($(".unCheckedCheckBox").length == 0) {
        $('.unCheckedCheckBoxAll').removeClass('unCheckedCheckBoxAll').addClass('CheckedCheckBoxAll');
    }
});
$(".CheckedCheckBoxAll").click(function () {
    $(this).removeClass('CheckedCheckBoxAll').addClass('unCheckedCheckBoxAll');
    $('.CheckedCheckBox').removeClass('CheckedCheckBox').addClass('unCheckedCheckBox');
});
$(".unCheckedCheckBoxAll").click(function () {
    $(this).removeClass('unCheckedCheckBoxAll').addClass('CheckedCheckBoxAll');
    $('.unCheckedCheckBox').removeClass('unCheckedCheckBox').addClass('CheckedCheckBox');
});

现在的问题是,当我点击未经检查的div时,它变成了检查div但是当我点击checked div时,它会进入未选中的功能,但是检查了类.
帮我.我没有得到什么问题.

这是jsfiddle链接:

http://jsfiddle.net/nscZA/3/

我正在使用的图片:

解决方法:

绑定事件保存在页面加载中,因此如果您希望类.CheckedCheckBox具有操作,则必须在添加类时添加绑定,并在删除类时删除绑定.但这不是一个好方法.使用toggleClass肯定是你需要的.

这里是我所做的一个小提琴:http://jsfiddle.net/nscZA/8/

我在复选框上绑定了一个偶数,所以你不必添加/删除它

$(".checkBox").click(function () {
    $(this).toggleClass('isChecked');
    if ($(".checkBox").length == $(".isChecked").length) {
       $('.checkBoxAll').addClass('checkAllChecked');
    }else{
        $('.checkBoxAll').removeClass('checkAllChecked');
    }
});

它添加了已检查的类,并检查是否选中了所有复选框.

我很高兴你探索我的解决方案并询问是否有你不理解的东西.

请注意,我改变了你的html class / css.

欢呼

javascript – jQuery同时addClass和removeClass

javascript – jQuery同时addClass和removeClass

我在Fiddle中有一个指向我代码的链接.

HTML:

<table border="0" cellpadding="1" cellspacing="0">
<tbody>
<tr>
  <td>
    <span>
    <select name="event_type_1" id="event_type_1" tabindex="24">
      <option value="option_1">Option 1</option>
    </select>
    </span>
  </td>
  <td>
    <input name="event_names_1" type="text" id="event_names_1"tabindex="24">
  </td>
  <td>
    <input name="school_1" type="text" id="school_1"tabindex="25" value="">
  </td>
  <td>
    <input name="event_time_score_1" type="tel" id="event_time_score_1"tabindex="26" size="10" maxlength="10">
  </td>
  <td>
    <div>
      Add row
    </div>
  </td>
</tr>
<trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
  <td>
    <span>
    <select name="event_type_2" id="event_type_2" tabindex="27">
      <option value="option_1">Option 1</option>
    </select>
    </span>
  </td>
  <td>
    <input name="event_names_2" type="text" id="event_names_2"tabindex="27">
  </td>
  <td>
    <input name="school_2" type="text" id="school_2"tabindex="28" value="">
  </td>
  <td>
    <input name="event_time_score_2" type="tel" id="event_time_score_2"tabindex="29" size="10" maxlength="10">
  </td>
  <td>
    <div>
      Add row
    </div>
  </td>
</tr>
<trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
  <td>
    <span>
    <select name="event_type_3" id="event_type_3" tabindex="30">
      <option value="option_1">Option 1</option>
    </select>
    </span>
  </td>
  <td>
    <input name="event_names_3" type="text" id="event_names_3"tabindex="30">
  </td>
  <td>
    <input name="school_3" type="text" id="school_3"tabindex="31" value="">
  </td>
  <td>
    <input name="event_time_score_3" type="tel" id="event_time_score_3"tabindex="32" size="10" maxlength="10">
  </td>
  <td>
    <div>
      Add row
    </div>
  </td>
</tr>
<trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
  <td>
    <span>
    <select name="event_type_4" id="event_type_4" tabindex="33">
      <option value="option_1">Option 1</option>
    </select>
    </span>
  </td>
  <td>
    <input name="event_names_4" type="text" id="event_names_4"tabindex="33">
  </td>
  <td>
    <input name="school_4" type="text" id="school_4"tabindex="34" value="">
  </td>
  <td>
    <input name="event_time_score_4" type="tel" id="event_time_score_4"tabindex="35" size="10" maxlength="10">
  </td>
  <td>
    <div>
      Add row
    </div>
  </td>
</tr>
<trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
  <td>
    <span>
    <select name="event_type_5" id="event_type_5" tabindex="36">
      <option value="option_1">Option 1</option>
    </select>
    </span>
  </td>
  <td>
    <input name="event_names_5" type="text" id="event_names_5"tabindex="36">
  </td>
  <td>
    <input name="school_5" type="text" id="school_5"tabindex="37" value="">
  </td>
  <td>
    <input name="event_time_score_5" type="tel" id="event_time_score_5"tabindex="38" size="10" maxlength="10">
  </td>
  <td>
    <div>
      Add row
    </div>
  </td>
</tr>
<trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
  <td>
    <span>
    <select name="event_type_6" id="event_type_6" tabindex="39">
      <option value="option_1">Option 1</option>
    </select>
    </span>
  </td>
  <td>
    <input name="event_names_6" type="text" id="event_names_6"tabindex="39">
  </td>
  <td>
    <input name="school_6" type="text" id="school_6"tabindex="40" value="">
  </td>
  <td>
    <input name="event_time_score_6" type="tel" id="event_time_score_6"tabindex="41" size="10" maxlength="10">
  </td>
  <td>
    <div>
      Add row
    </div>
  </td>
</tr>
</tbody>
</table>

JS:

$(function() {
    $('table').on('click', '.hide-row', function(e) {
        console.log('hidden!');
        $( this ).parent().parent().hide();
    });


  $('.add-row').click(function(e) {
    $( this ).html('Hide').removeClass('add-row').addClass('hide-row');
    $( this ).parent().parent().next().show();
  });


});

我想要做的是当用户点击“添加行”时显示另一行.用户单击的按钮然后变成一个按钮,以同时删除它所在的行.

发生的事情是它显示新行并隐藏他们立即点击的行.谁知道我做错了什么?

提前致谢!

解决方法:

问题来自click事件,要将事件附加到新元素为.add-row(动态添加),您必须使用事件委托on()

$('body').on('click', '.add-row', function(e) {

希望这可以帮助.

$(function() {
  $('table').on('click', '.hide-row', function(e) {
    console.log('hidden!');
    $( this ).parent().parent().hide();
  });


  $('body').on('click', '.add-row', function(e) {
    $( this ).html('Hide').removeClass('add-row').addClass('hide-row');
    $( this ).parent().parent().next().show();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="0" cellpadding="1" cellspacing="0">
  <tbody>
    <tr>
      <td>
        <span>
          <select name="event_type_1" id="event_type_1" tabindex="24">
            <option value="option_1">Option 1</option>
          </select>
        </span>
      </td>
      <td>
        <input name="event_names_1" type="text" id="event_names_1"tabindex="24">
      </td>
      <td>
        <input name="school_1" type="text" id="school_1"tabindex="25" value="">
      </td>
      <td>
        <input name="event_time_score_1" type="tel" id="event_time_score_1"tabindex="26" size="10" maxlength="10">
      </td>
      <td>
        <div>
          Add row
        </div>
      </td>
    </tr>
    <trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
      <td>
        <span>
          <select name="event_type_2" id="event_type_2" tabindex="27">
            <option value="option_1">Option 1</option>
          </select>
        </span>
      </td>
      <td>
        <input name="event_names_2" type="text" id="event_names_2"tabindex="27">
      </td>
      <td>
        <input name="school_2" type="text" id="school_2"tabindex="28" value="">
      </td>
      <td>
        <input name="event_time_score_2" type="tel" id="event_time_score_2"tabindex="29" size="10" maxlength="10">
      </td>
      <td>
        <div>
          Add row
        </div>
      </td>
    </tr>
    <trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
      <td>
        <span>
          <select name="event_type_3" id="event_type_3" tabindex="30">
            <option value="option_1">Option 1</option>
          </select>
        </span>
      </td>
      <td>
        <input name="event_names_3" type="text" id="event_names_3"tabindex="30">
      </td>
      <td>
        <input name="school_3" type="text" id="school_3"tabindex="31" value="">
      </td>
      <td>
        <input name="event_time_score_3" type="tel" id="event_time_score_3"tabindex="32" size="10" maxlength="10">
      </td>
      <td>
        <div>
          Add row
        </div>
      </td>
    </tr>
    <trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
      <td>
        <span>
          <select name="event_type_4" id="event_type_4" tabindex="33">
            <option value="option_1">Option 1</option>
          </select>
        </span>
      </td>
      <td>
        <input name="event_names_4" type="text" id="event_names_4"tabindex="33">
      </td>
      <td>
        <input name="school_4" type="text" id="school_4"tabindex="34" value="">
      </td>
      <td>
        <input name="event_time_score_4" type="tel" id="event_time_score_4"tabindex="35" size="10" maxlength="10">
      </td>
      <td>
        <div>
          Add row
        </div>
      </td>
    </tr>
    <trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
      <td>
        <span>
          <select name="event_type_5" id="event_type_5" tabindex="36">
            <option value="option_1">Option 1</option>
          </select>
        </span>
      </td>
      <td>
        <input name="event_names_5" type="text" id="event_names_5"tabindex="36">
      </td>
      <td>
        <input name="school_5" type="text" id="school_5"tabindex="37" value="">
      </td>
      <td>
        <input name="event_time_score_5" type="tel" id="event_time_score_5"tabindex="38" size="10" maxlength="10">
      </td>
      <td>
        <div>
          Add row
        </div>
      </td>
    </tr>
    <trhttps://www.jb51.cc/tag/dis/" target="_blank">display: none;">
      <td>
        <span>
          <select name="event_type_6" id="event_type_6" tabindex="39">
            <option value="option_1">Option 1</option>
          </select>
        </span>
      </td>
      <td>
        <input name="event_names_6" type="text" id="event_names_6"tabindex="39">
      </td>
      <td>
        <input name="school_6" type="text" id="school_6"tabindex="40" value="">
      </td>
      <td>
        <input name="event_time_score_6" type="tel" id="event_time_score_6"tabindex="41" size="10" maxlength="10">
      </td>
      <td>
        <div>
          Add row
        </div>
      </td>
    </tr>
  </tbody>
</table>

javascript – 使用jQuery动画addClass / removeClass

javascript – 使用jQuery动画addClass / removeClass

我正在使用jQuery和jQuery-ui,并希望动画各种对象的各种属性.

为了解释这里的问题,我把它简化为一个div,当用户将鼠标悬停在它上面时,它会从蓝色变为红色.

我可以在使用animate()时获得我想要的行为,但是当这样做时,我动画的样式必须在动画代码中,因此与我的样式表分开. (见例1)

另一种方法是使用addClass()和removeClass(),但我无法重新创建使用animate()可以获得的确切行为. (见例2)

例1

让我们看看我对animate()的代码:

$('#someDiv')
  .mouSEOver(function(){
    $(this).stop().animate( {backgroundColor:'blue'}, {duration:500});
  })
  .mouSEOut(function(){
    $(this).stop().animate( {backgroundColor:'red'}, {duration:500});
  });

它显示我正在寻找的所有行为:

>在红色和蓝色之间平滑动画.
>当用户快速将鼠标移入和移出div时,没有动画’过度加载’.
>如果用户在动画播放时将鼠标移出/移入,则在当前“中途”状态和新“目标”状态之间正确缓解.

但是由于样式更改是在animate()中定义的,我必须更改那里的样式值,而不能仅仅指向我的样式表.定义样式的“碎片”真的让我困扰.

例2

这是我目前使用addClass()和removeClass的最佳尝试(请注意,要使动画生效,您需要jQuery-ui):

//assume classes 'red' and 'blue' are defined

$('#someDiv')
  .addClass('blue')
  .mouSEOver(function(){
    $(this).stop(true,false).removeAttr('style').addClass('red', {duration:500});
  })
  .mouSEOut(function(){
    $(this).stop(true,false).removeAttr('style').removeClass('red', {duration:500});
  });

这显示了我原始要求的属性1.和2.但是3不起作用.

我明白这个的原因:

当动画addClass()和removeClass()时,jQuery会为元素添加一个临时样式,然后递增适当的值,直到它们达到提供的类的值,然后才会实际添加/删除该类.

因此,我必须删除style属性,否则如果动画中途停止,则样式属性将保留并永久覆盖任何类值,因为标记中的样式属性比类样式具有更高的重要性.

但是,当动画完成一半时,它还没有添加新类,因此使用此解决方案,当用户在动画完成之前移动鼠标时,颜色会跳转到上一个颜色.

我理想的是能够做到这样的事情:

$('#someDiv')
  .mouSEOver(function(){
    $(this).stop().animate( getClassContent('blue'), {duration:500});
  })
  .mouSEOut(function(){
    $(this).stop().animate( getClassContent('red'), {duration:500});
  });

getClassContent只返回提供的类的内容.关键在于,这样我就不必将样式定义保留在所有位置,而是可以将它们保存在样式表中的类中.

解决方法:

既然你不担心IE,为什么不只是使用css过渡来提供动画和jQuery来改变类.实例:http://jsfiddle.net/tw16/JfK6N/

#someDiv{
    -webkit-transition: all 0.5s ease;
    -moz-transition: all 0.5s ease;
    -o-transition: all 0.5s ease;
    transition: all 0.5s ease;
}

今天关于jQuery removeClass 通配符的讲解已经结束,谢谢您的阅读,如果想了解更多关于addClass和removeClass在jQuery – 不删除类、javascript – jQuery使用.removeClass()和.addClass()切换类无法正常工作、javascript – jQuery同时addClass和removeClass、javascript – 使用jQuery动画addClass / removeClass的相关知识,请在本站搜索。

本文标签: