0

我正在为我的键盘控制使用 jquery 代码。当我按下键盘时,黄色块将跳到下一个块。我试图找出如何使用名为“span0hr”的类检查“row2”的元素,然后做一些事情。

if (event.keyCode == 37) 
  {   //left
    if(parseInt(current_row) <= 1)
    {
      return false;
    }

    for(var i=2; i< parseInt(current_row);i++ )
    {
      var yellowbgnextdivwidth1 = $(".div_"+current_col+'_'+i).css( "width"); 
      var yellowbgnextdivwidthsplit1 = yellowbgnextdivwidth1.split("px");
      totalwidth_current1=parseInt(totalwidth_current1)+parseInt(yellowbgnextdivwidthsplit1[0]);
    }   
    var currentrowleft = $(".rowSubPgm div.pgmFirstRow:first").css( "margin-left").split("px");
    currentrowleft1 = currentrowleft[0].split("-");
    currentrowleft2 = currentrowleft1[0].split("-");

    if(typeof(currentrowleft2[1])!= "undefined")
        currentrowleft1 = currentrowleft2[1];
    if(typeof(currentrowleft1[1])!= "undefined")
      currentrowleft = currentrowleft1[1];
    else
      currentrowleft = currentrowleft[0];           
      var currentdivwidth = yellowbg.css( "width").split("px");
      //alert("-"+(parseInt(currentrowleft)-parseInt(currentdivwidth))+"px");


      if(current_row == 2 && currentdivwidth[0] == 517)
      {
        current_row--;
      }
      else if(current_row == 2 && currentdivwidth[0] == 250)
      {
        $('.span1hrfor30mins').each(function(i,e)
        {
          if($(e).hasClass('row2') && $(e).hasClass('span1hrfor30mins'))
          {
            $('.rowSubPgm').css( "margin-left", "-"+(rowwidth)+"px" );
            $(e).attr('row2'); $(e).removeClass('span1hrfor30mins').addClass('span1hr');
          }
        });

        if($(e).hasClass('span0hr'))
        {
            alert("let do something");
        }
      }


      if(current_row > 2 && currentdivwidth[0] > 250)
      {
        current_row--;
      }
  }

问题出在这段代码的某个地方:

if($(e).hasClass('span0hr'))
{
  alert("let do something");
}

当我按下键盘左箭头按钮时,它应该使用名为“span0hr”的类检查“rows2”的元素,然后做一些事情,但代码发生的事情是它什么也没做。它根本不检查元素,我想我做了不正确的 if 语句来检查元素。

有谁知道我如何使用名为“span0hr”的类检查名为“rows2”的元素?

4

1 回答 1

0

确保将处理程序附加到 onkeydown 或 onkeyup 事件。不会为所有浏览器上的控制键引发 onkeypress 事件。

于 2013-07-09T22:24:28.250 回答