在 jQuery 中检测类切换
Detecting class toggle in jQuery
我正在尝试做一个画布外的侧边栏,我正在使用.toggleClass
函数使其处于活动状态或不激活。当它处于活动状态时,我希望按钮 (.btn) 说"隐藏",当它不说"显示"时。我已经尝试做一个 if 语句,但它失败了。我也看过其他堆栈溢出问题,但没有成功。任何人都可以帮助如何检测类是否已切换吗?
$(document).ready(function () {
$('[data-toggle="offcanvas"]').click(function () {
$('.row-offcanvas').toggleClass('active');
// if active "hide"
$('.btn').html("HIDE");
// if not active "show"
$('.btn').html("SHOW");
});
});
.hasClass('someClass')
将帮助您检索布尔true/false
api.jquery.com/hasclass:确定是否为任何匹配的元素分配了给定的类。 如果将类分配给元素,.hasClass() 方法将返回
true
$(document).ready(function () {
$('[data-toggle="offcanvas"]').click(function () {
$('.row-offcanvas').toggleClass('active');
var act = $('.row-offcanvas').hasClass("active");
if(act){
$('.btn').html("HIDE");
}else{
$('.btn').html("SHOW");
}
});
});
使用条件运算符(又名三元运算符)的较短方法是:
$(function() { // DOM ready
$('[data-toggle="offcanvas"]').on("click", function () {
var $row = $('.row-offcanvas').toggleClass('active');
$('.btn').html($row.hasClass("active") ? "HIDE" : "SHOW");
});
});
我还必须警告您,通过选择像$(".btn")
这样的元素,将更改页面上的每个.btn
元素。始终确保在.find()
(或类似的选择器方法)的帮助下使用正确的选择器。为了特殊性。
您应该有另一种方法来选择对象,例如按 id,如下所示:
$("#myid")...
然后,可以使用 hasClass 函数 (http://api.jquery.com/hasclass/) 来验证该类是否已添加到对象中。
$("#myid").hasClass("xxx")
$(document).ready(function () {
$('[data-toggle="offcanvas"]').click(function () {
if ($('.row-offcanvas').toggleClass('active').hasClass('active'))
$('.btn').html("HIDE");
else
$('.btn').html("SHOW");
});
});
我想你正在寻找这样的东西。你只需要添加一个 if/else 语句来检查类
$(document).ready(function () {
$('[data-toggle="offcanvas"]').click(function () {
$('.row-offcanvas').toggleClass('active');
if ($('.row-offcanvas').hasClass('active')){
$('.btn').html("HIDE");
}
else{
$('.btn').html("SHOW");
}
});
});
http://jsfiddle.net/GregWebBandit/Lmfok39k/
你可以通过检查元素 classList 来使用 javascript,如下所示:
var el = document.getElementById("elementId");
el.classList.contains("foo");
Mozilla Docs 中的更多信息
相关文章:
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 动态插入的表:JQuery未检测到最后一行
- 如何检测jQuery触发器事件完成
- 检测jquery中文本区域的自动更改
- 从鼠标滚轮事件内部检测 jQuery 滚动事件
- 如何在没有固定高度时检测 jquery 中的换行符
- 检测 jQuery 中的“输入内的光标位置何时更改”
- 如何检测 jquery 移动输入滑块何时在 jquery 上移动
- 使用常规 javascript 检测 Jquery,如果不存在,则动态加载它
- 检测jQuery选项卡折叠事件
- 如何检测JQuery Mobile对话框已关闭
- 通过esc键或外部点击检测jquery显示插件模式关闭
- 有没有一种方法可以动态检测JQuery中哪个元素触发了一个事件?
- 脚本在Wordpress中不能正确检测jQuery
- 如何检测jquery fullcalendar是否需要从服务器获取事件
- 更频繁地检测jquery鼠标移动
- 正在检测jQuery中的输入更改
- 如何检测jquery事件内部的更改
- Android Webview - 检测 jquery 文档准备就绪
- 检测jquery版本是否实时使用