Javascript 若元素有类,那个么运行函数,否则运行另一个

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

我的页面上有一个元素,我想使其可拖动

在单击事件中,我添加了类“active”,这只是扩展了我的div和其中的图像

所以一开始我的div看起来像

<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(){ ... }