1

<td>PHPでシンプルなカレンダーアプリを作成していますが、ユーザーの操作に応じてブロックスタイルを変更したいと思います。ただし、「menuclick」クラスがオンの場合、別のブロックをクリックするまで他のクラスが機能しなくなるようにします。前のブロックもオフにする必要があります。前もって感謝します。

echo'<td onclick=className="menuclick"; onmouseover=className="menuon"; onmouseout=className="menuoff";>' . $countDay++ . "</td>"
4

3 に答える 3

2

http://api.jquery.com/addClass/を見てみましょう

  $("#menuItemId").addClass(function(index, currentClass) {
    var addedClass;

    if ( currentClass === "menuon" ) {
      addedClass = "menuoff";

      alert("menu has class "+addedClass+" now");

    }

    return addedClass;
  });

クラスまたは特定の「状態」を削除する場合: http://api.jquery.com/removeClass/

お役に立てれば。

于 2013-03-18T12:48:08.077 に答える
1

インラインで実行したい場合は、少し複雑です。私はむしろjQueryを使用して、次のようなことをしたいと思います。

HTML:

<td class="menuClickable">Whatever...</td>

Javascript:

$(document).load(function() {
    $('.menuClickable').click(function() {
        $(this).removeClass('menuon');
        $(this).addClass('menuClick');
    });
});

もちろん、これはただの迅速で汚いバージョンです...

于 2013-03-18T12:43:59.277 に答える
0

以下を使用して、目的を達成できると思います。

echo '<td onclick="this.className=\'menuclick\';" onmouseover="this.className=\'menuon\';" onmouseout="this.className=\'menuoff\';">'

http://jsfiddle.net/WDu9v/

誰もがjqueryの回答をしており、jbabeyがインラインjsについて不平を言っているように見えます:

$('td').each(function() {
    $(this).mouseenter(function() {
        $(this).removeClass().addClass('menuon');
    });
    $(this).mouseleave(function() {
        $(this).removeClass().addClass('menuoff');
    });
    $(this).click(function() {
        $(this).removeClass().addClass('menuclick');
    }); 
});

http://jsfiddle.net/WDu9v/1/

于 2013-03-18T12:42:58.090 に答える