Javascript 若元素有类,那个么运行函数,否则运行另一个
我的页面上有一个元素,我想使其可拖动 在单击事件中,我添加了类“active”,这只是扩展了我的div和其中的图像 所以一开始我的div看起来像Javascript 若元素有类,那个么运行函数,否则运行另一个,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我的页面上有一个元素,我想使其可拖动 在单击事件中,我添加了类“active”,这只是扩展了我的div和其中的图像 所以一开始我的div看起来像 <div class="work-showcase"> 点击它就会变成 <div class="work-showcase active"> 我想说的是,如果div的类处于活动状态,则执行X函数,否则执行Y函数 $(body).click(function(){ if($('.work-showca
<div class="work-showcase">
点击它就会变成
<div class="work-showcase active">
我想说的是,如果div的类处于活动状态,则执行X函数,否则执行Y函数
$(body).click(function(){
if($('.work-showcase').hasClass('active')){
var bleft = 4900 ;
var bright = $(window).width() - 200;
$('.active > ul li').draggable({
axis: "x",
revert: false,
stop: function(event, ui) {
if(ui.position.left < -bleft)
{
$(this).animate({"left": "0px"}, 600);
}
if(ui.position.left > bright)
{
$(this).animate({"left": "0px"}, 600);
}
}
});
} else {
var sleft = 1846 ;
var sright = $(window).width() - 200;
$('.work-showcase > ul li').draggable({
axis: "x",
revert: false,
stop: function(event, ui) {
if(ui.position.left < -sleft)
{
$(this).animate({"left": "0px"}, 600);
}
if(ui.position.left > sright)
{
$(this).animate({"left": "0px"}, 600);
}
}
});
}
});
$(正文)。单击(函数(){
if($('.work showcase').hasClass('active')){
var bleft=4900;
var bright=$(窗口).width()-200;
$('.active>ul li')。可拖动({
轴:“x”,
回复:false,
停止:功能(事件、用户界面){
如果(ui.position.left<-bleft)
{
$(this.animate({“left”:“0px”},600);
}
如果(ui.position.left>bright)
{
$(this.animate({“left”:“0px”},600);
}
}
});
}否则{
var-sleft=1846;
var sright=$(窗口).width()-200;
$('.work showcase>ul li')。可拖动({
轴:“x”,
回复:false,
停止:功能(事件、用户界面){
如果(ui.position.left<-sleft)
{
$(this.animate({“left”:“0px”},600);
}
如果(ui.position.left>srright)
{
$(this.animate({“left”:“0px”},600);
}
}
});
}
});
我的If语句似乎对jQuery不起作用…:
if($(this).hasClass("active")){
//do this
} else {
//do that
}
编辑:它返回
true
或false
:请尝试此操作,而不是您当前拥有的内容(如果有问题,请告诉我)
$('body')。单击(函数(){
变量拖动,左,右;
if($('.work showcase').hasClass('active')==true){
拖动='。活动>ul li';
左=-4900;
右=$(窗口).width()-200;
}否则{
拖动='。工作展示>ul li';
左=-1846;
右=$(窗口).width()-200;
}
$(拖动)。可拖动({
轴:“x”,
回复:false,
停止:功能(事件、用户界面){
if(ui.position.leftright){
$(this.animate({'left':'0px'},600);
}
}
});
});
此选择器:
$(body).click(function(){ ... });
需要:
$('body').click(function(){ ... }
注意引用 jQuery:
hasClass('classNameToCheck')
,本机:elem.className.indexOf('classNameToCheck')!=-1
我的if语句似乎不起作用……它怎么不起作用?应该发生什么,而不是发生什么?if语句中的条件为Ok。从未见过hasClassIt有任何问题,它应该做完全相同的事情,但作为旁注,您可以尝试:if($('.work showcase').is('.active'){…}
Brilliant,这很有效,只是我需要单击身体上的某个地方来启动它。有什么我可以做的更好的吗?那么你希望如何启动它?我希望它总是检查我猜@RyTransmish,我在单击时添加了活动类,所以如果我检查了工作展示div的单击,其他类将不起作用,是吗,我在争论setInterval是否有用?如果希望它一直在检查,请使用$(document).ready(函数检查(){…});然后在名为“check”的函数中,在最底部添加setTimeout(check,1000)。其中1000是以毫秒为单位的等待时间。您希望我更新我的答案以反映变化吗?不用担心,很高兴我能提供帮助。:)
$('body').click(function(){ ... }