在本文中,您将会了解到关于类操作,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(顺丰岗前收件模拟酒类操作)
- addClass和removeClass在jQuery – 不删除类
- angular.js怎样实现Jq的addclass\removeclass
- classList介绍和原生JavaScript实现addClass、removeClass等
- javascript – .removeClass()在.addClass()之后无效
类操作,removeClass&addClass(顺丰岗前收件模拟酒类操作)
addClass和removeClass在jQuery – 不删除类
问题是,在这个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子句,因为我认为或许这两个函数都被触发在同一个时间相互破坏,但似乎没有任何区别
解决方法
事件冒泡将使点击事件从子节点传播到他们的父母。所以你的.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
<a >编辑信息</a>
.border-none{
border:none;
}
如何用angular.js实现点击a标签,添加类border-none,再次点击,删除类border-none
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()之后无效
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"); } });
解决方法
除此之外,我做了一些更改,以删除一些模糊的检查和使用链接.
$(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()之后无效的相关知识,请在本站寻找。
本文标签: