9

別のdivがクリックされたときに、divを表示および非表示にしています。特定の div が表示されているか非表示になっているかを判断できる必要があります。

最終的に私がやろうとしているのは、特定のdivがクリックされたときに、他のすべての「表示/非表示」divを非表示にして、クリックされたdivの関連divが表示されているかどうかを判断し、表示されている場合は非表示にし、そうでない場合は表示することです.

トグル状態に基づいて、css クラス (背景色用) を表示/非表示の div に追加/削除する必要もあります。

divの表示/非表示状態を切り替えるために使用しているjQueryコードは次のとおりです。

$('#movieListTable').on('click', 'div.vitalsTable', function (e) {

    // Don't do anything if the Edit button or Delete checkbox is clicked
    if (event.target.className !== 'btnEditMovie' && event.target.className !== 'chkDeleteMovie') {

        $(this).parent().parent().find('div.detailsTable').toggle('blind','easeInOutQuart', 300);
    }
});

奇妙でイライラするのは、SOでの回答を含め、私が読んだすべてのものは、表示状態(「なし」)または表示可能なプロパティのいずれかを確認できるはずであることを示していますが、コンソールで確認することはできません。それらのうち、表示/非表示になっているdivに設定されています。

私はあなたがいじるためのjsFiddleを作成しました。

toggle()に関するjQuery のドキュメントでは、ページの約 3/4 で、toggle() を使用する方法の 1 つであるブール値パラメーター「showOrHide」について説明していますが、使用方法を理解できていません。それが自分…

4

3 に答える 3

24

あなたが使用することができます$(div).is(':visible')

于 2013-02-25T11:54:47.460 に答える
2
$('.elem').slideToggle('fast', function() {
    alert($(this).is(':visible'));
});
于 2015-09-02T15:56:16.977 に答える
0
var className = $(el).attr("class"); 

そこから現在のクラスを取得できます。ロジックはテストを引き継いで要素を変更できます。

  • if(className == "yourCss")
  • el.addClass("YourCSS");
  • el.removeClass("YourCSS");

複数のクラスケースをテストする必要がない限り、jvnillの答えは効率的なものだと今でも信じています。

toggle(): CSS 表示プロパティを変更して、選択した要素のhide() と show()を切り替えるだけです。

注:クラスが要素に追加されると、.removeClass()呼び出しによって削除されない限り、要素のクラス属性 (リスト) が追加されます。

于 2016-07-28T07:47:14.950 に答える