1

h3各質問の後に div 回答が続くQ&A トグル パネルから、以下のコードの問題を見つけようとしています。この特定のコードは、すべての質問と回答を調べて、開いているものをすべて閉じることになっています。

ここでコードの何が問題なのかを尋ねているわけではありませんが、トラブルシューティングにいくつかのトリックがあるかどうかはわかりません. たとえば、.next()が this の div に移行する場合、h3その div jQuery オブジェクトを表す変数、つまりnext(). そして、slideToggle(1000)見ているトグル状態変数を見るといいでしょうslideToggle()

$('#qa h3').each(function() {
debugger;
this$ = $(this);
if(this$.hasClass('ui-state-active')) {
    this$.toggleClass("ui-state-active ui-state-default")
   .next()
    .toggleClass("ui-accordion-content-active")
    .slideToggle(1000);
} 

提案をありがとう

4

2 に答える 2

1
if (this$.hasClass('ui-state-active')) {
    // code added for troubleshooting purposes
    var that = this$.next();
    console.log(that);
    // end
    this$.toggleClass("ui-state-active ui-state-default")
    .next()
    .toggleClass("ui-accordion-content-active")
    .slideToggle(1000);
} 
于 2013-08-08T14:28:42.590 に答える
1

を使用して、要求している変数をコンソールに出力するだけですconsole.log

$('#qa h3').each(function() {
  debugger;

  $this = $(this);
  console.log($this);

  if($this.hasClass('ui-state-active')) {
    console.log('$this has class .ui-state-active');
    console.log('$this.next() = ' + $this.next());

    $this.toggleClass("ui-state-active ui-state-default").next().toggleClass("ui-accordion-content-active").slideToggle(1000);
  }
}

本についてだけ、あなたの問題は中括弧が欠けていることだと思います。上記のコードに不足しているブレースを追加しました。

于 2013-08-08T14:28:34.353 に答える