复选框选择,onchange转到功能。 [复选框是图像。而不是实际的复选框]

时间:2012-02-16 13:17:54

标签: jquery

<div id="dtree_activity">
    <ul><li><a href="#" class=""><ins class="jstree-checkbox">&nbsp;</ins>
    <ins class="jstree-icon">&nbsp;</ins>Fresh</a></li></ul>
</div>

我的代码: -

j('#dtree_activity').click(function(){
if(j('#dtree_activity li').is('.jstree-checked'))
{
    doSometin();

}
else
{
    doSometinElse();

}

});

它的作用: -

检查是否单击了复选框[Image]。由“jstree-checked”类的存在决定

问题: -

它有效,但状态是一次点击更新。

例如:我选中复选框,它应该是Somtin()......但它不会 如果我再次点击div中的任何地方,它将转到doSometin()

3 个答案:

答案 0 :(得分:1)

你刚才错误的逻辑方式。这应该有帮助...

j('#dtree_activity').click(function(){
    if (j(this).find('li').is('.jstree-checked'))
    {
        //  It's already checked so we're unchecking here
        j(this).find('li').removeClass('.jstree-checked');
        doSometinElse();
    }
    else
    {
        //  It's not checked so we're checking here
        j(this).find('li').addClass('.jstree-checked');
        doSometin();
    }
});

答案 1 :(得分:1)

  

但我不想删除任何课程。只需检查它是否存在..

在这种情况下,使用hasClass()返回一个布尔值,以查看所选元素是否具有指定的类。例如:

if (j('#dtree_activity li').hasClass('jstree-checked')) {
    doSometin();
}
else {
    doSometinElse();
}

进一步阅读hasClass()

答案 2 :(得分:0)

setInterval(function() {
      if(j('#dtree_activity').find('li').is('.jstree-checked'))
      {
      showGetProductBtn();
      }
      else
      { hideGetProductBtn();}
    }, 2000);