如何在运行脚本之前检查css类

时间:2017-10-20 09:45:29

标签: jquery

我正在尝试创建一个看起来像Windows桌面的网页界面。

我的问题是,当我点击开始菜单中的应用程序图标时,我想在任务栏中添加该应用程序图标。在添加之前,我在开始菜单中将该类添加到该图标以标记此应用已经打开,因此如果该应用已经打开,我不希望将新应用图标附加到任务栏中。

我使用了下面的代码,但即使这样,该类也被添加,任务栏中的新图标仍然被追加。

$(".app_ico").on('click', function() {
  var checkClass = function() {
    var check = $(".app_ico").hasClass("luanched");
    if (check === true) {
      return (true);
    } else {
      return (false);
    }
  }
  checkClass();

  var appIcoId = $(this).attr("id");
  var appId = "#" + appIcoId.substring(4);

  if (checkClass() === false) {

    $(this).addClass("launched");
    $("" + appId).addClass("app_open");
    $(".taskbar").append("<div>A</div>");

  } else {
    $("" + appId).addClass("app_open");
  }

2 个答案:

答案 0 :(得分:1)

问题是因为您设置了班级launched,但检查了luanched。此外,您的逻辑可以改进。例如,您的checkClass()功能完全是多余的。试试这个:

$(".app_ico").on('click', function() {
  $("#" + this.id.substring(4)).addClass("app_open");

  if (!$(this).hasClass("launched")) {    
     $(this).addClass("launched");
     $(".taskbar").append("<div>A</div>");
  }
});

答案 1 :(得分:0)

使用hasClass

if( $("selector").hasClass("calss") )
{
// if selector has class
} else{
// no chance

}