GVKun编程网logo

类操作,removeClass&addClass(顺丰岗前收件模拟酒类操作)

23

在本文中,您将会了解到关于类操作,removeClass&addClass的新资讯,同时我们还将为您解释顺丰岗前收件模拟酒类操作的相关在本文中,我们将带你探索类操作,removeClass&addCl

在本文中,您将会了解到关于类操作,removeClass&addClass的新资讯,同时我们还将为您解释顺丰岗前收件模拟酒类操作的相关在本文中,我们将带你探索类操作,removeClass&addClass的奥秘,分析顺丰岗前收件模拟酒类操作的特点,并给出一些关于addClass和removeClass在jQuery – 不删除类、angular.js怎样实现Jq的addclass\removeclass、classList介绍和原生JavaScript实现addClass、removeClass等、javascript – .removeClass()在.addClass()之后无效的实用技巧。

本文目录一览:

类操作,removeClass&addClass(顺丰岗前收件模拟酒类操作)

类操作,removeClass&addClass(顺丰岗前收件模拟酒类操作)

// 添加类
function addClass(node,className){
                var reg=new RegExp("\\b"+className+"\\b");
                if(!reg.test(node.className)){
                    node.className +=(" "+className);
                }
}
 
// 移除类
function removeClass(node,className){
                if(node.className){
                    var reg=new RegExp("\\b"+className+"\\b");
                    var classes = node.className;
                    node.className=classes.replace(reg,"");
                    if(/^\s*$/g.test(node.className)){
                        node.removeAttribute("class");
                    }
                }else{
                    node.removeAttribute("class");
                }
}
 

 

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艺术=])

angular.js怎样实现Jq的addclass\removeclass

angular.js怎样实现Jq的addclass\removeclass

<a >编辑信息</a>

.border-none{

border:none;

}

如何用angular.js实现点击a标签,添加类border-none,再次点击,删除类border-none


classList介绍和原生JavaScript实现addClass、removeClass等

classList介绍和原生JavaScript实现addClass、removeClass等

使用jQuery可以给元素很方便的添加class和删除class等操作,现在原生的JavaScript也可以实现这个方法了。使用classList可以方便的添加class、删除class、查询class等。

语法:

let elementClass = element.classList;

elementClasses 是一个 DOMTokenList 表示 element 的类属性 。如果类属性未设置或为空,那么 elementClasses.length 返回 0。element.classList 本身是只读的,虽然你可以使用 add() 和 remove() 方法修改它。

方法:

add( String [, String] )

添加指定的类值。如果这些类已经存在于元素的属性中,那么它们将被忽略。

remove( String [,String] )

删除指定的类值。

item ( Number )

按集合中的索引返回类值。

toggle ( String [, force] )

当只有一个参数时:切换 class value; 即如果类存在,则删除它并返回false,如果不存在,则添加它并返回true。
当存在第二个参数时:如果第二个参数的计算结果为true,则添加指定的类值,如果计算结果为false,则删除它

contains( String )

检查元素的类属性中是否存在指定的类值。

示例:

// div是具有class =“foo bar”的<div>元素的对象引用
div.classList.remove("foo");
div.classList.add("anotherclass");

// 如果visible被设置则删除它,否则添加它
div.classList.toggle("visible");

// 添加/删除 visible,取决于测试条件,i小于10
div.classList.toggle("visible", i < 10);

alert(div.classList.contains("foo"));

//添加或删除多个类
div.classList.add("foo","bar");
div.classList.remove("foo", "bar");

兼容性:

不兼容Android2.3和iOS4.2的,在移动端上想使用也是有点头疼啊。IE系列的更别说IE9和IE8了。所以目前来看,还是无法在实际中放心的使用,只能用于某些特定的项目等。不过我们可以通过一些shim来实现,或者最下方给出的原生javascript实现。

跨浏览器javascript shim

https://github.com/eligrey/cl...

原生JavaScript

类似于jQuery库的使用方式,使用className通过正则来添加或者删除class。
addClass、removeClass、toggleClass、hasClass

function hasClass(obj, cls) { 
 return obj.className.match(new RegExp(''(\\s|^)'' + cls + ''(\\s|$)'')); 
} 
 
function addClass(obj, cls) { 
 if (!this.hasClass(obj, cls)) obj.className += " " + cls; 
} 
 
function removeClass(obj, cls) { 
 if (hasClass(obj, cls)) { 
 var reg = new RegExp(''(\\s|^)'' + cls + ''(\\s|$)''); 
 obj.className = obj.className.replace(reg, '' ''); 
 } 
} 
 
function toggleClass(obj,cls){ 
 if(hasClass(obj,cls)){ 
 removeClass(obj, cls); 
 }else{ 
 addClass(obj, cls); 
 } 
}

参考链接:
https://blog.csdn.net/leadn/a...

javascript – .removeClass()在.addClass()之后无效

javascript – .removeClass()在.addClass()之后无效

我有两个班级空着色.一旦我点击了彩色类,然后删除彩色类并添加空类.我再次点击它应该添加彩色类和remoce空类.但它没有用.

var color_click = false;
            var select_color = "";
            $( ".colored").on('click',function(e){
                if(color_click != true){
                    color_click = true;
                    select_color = $(this).css('background-color');
                    $(this).removeClass("colored");
                    $(this).addClass( "empty");
                    $(this).css('background-color','')
                }
            });


            $( ".empty").click(function(){
                if(color_click == true){
                    color_click = false;
                    $(this).css('background-color',select_color);
                    $(this).addClass("colored");
                    $(this).removeClass( "empty");

                }
            });

解决方法

是.那是因为您将事件绑定到该特定类.您可以使用事件委派来使用 on()来解决问题.当您的事件绑定发生时,没有类.empty的元素,并且绑定无效.而不是使用文档头(在我的示例中使用)使用始终存在于DOM中的容器并保存此元素.因此,通过事件委派,您实际上将事件绑定到容器/文档头,以便对现在以及将来存在于DOM中的元素进行委派.

除此之外,我做了一些更改,以删除一些模糊的检查和使用链接.

$(document).on('click',".colored",function(e){
            if(!color_click){ // You dont need this check if your variable is modified only in these 2 events
                color_click = true;
                select_color = $(this).css('background-color');
                $(this).removeClass("colored").addClass( "empty").css('background-color','');

            }
        });


        $( document).on('click',".empty",function(){
            if(color_click){// You dont need this check if your variable is modified only in these 2 events
                color_click = false;
                $(this).addClass("colored").removeClass("empty").css('background-color',select_color);

            }
        });

关于类操作,removeClass&addClass顺丰岗前收件模拟酒类操作的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于addClass和removeClass在jQuery – 不删除类、angular.js怎样实现Jq的addclass\removeclass、classList介绍和原生JavaScript实现addClass、removeClass等、javascript – .removeClass()在.addClass()之后无效的相关知识,请在本站寻找。

本文标签: