0

スライド式のオープン エリアの 1 つに div タグを配置する必要があるときに壊れる jQuery アコーディオンがあります。これを回避するにはどうすればよいですか? span-tag から素敵なボックスを作ることができないので、div-tag を入れる必要があります。誰でもこれを回避する方法を知っていますか??

ここで私のデモを見て、どこが壊れているかを確認してください:(

http://jsfiddle.net/zRqYM/

4

6 に答える 6

1

これは少し不自由に思えますが、 a を使用しspanて に設定するだけdisplay: blockです。次に、それは本質的に次のdivとおりです。http://jsfiddle.net/zRqYM/5/

于 2012-08-16T11:10:42.837 に答える
1

おそらくこれを変更する必要があります:

$(this).next("p").slideToggle("slow")
       .siblings("p:visible").slideUp("slow");

に:

$(this).next("div").slideToggle("slow")
       .siblings("div:visible").slideUp("slow");

そしてCSS:

.accordion2 > div {
    background: #f7f7f7;
    /* etc... */

展開可能なコンテンツ内に他の要素を配置する場合は、DIV代わりにa を使用する方が理にかなっています: http://jsfiddle.net/zRqYM/13/P

Pまたは、タグ内でインライン要素を使用してスタイルを設定するdisplay:block;だけですが、意味がわかりません。

于 2012-08-16T11:16:27.603 に答える
1

CSS をいじらずにアコーディオンを試す別の方法があります。

HTML次のように完了します。

<div id='accordion'>
 <h3>Title of the view</h3>
 <div>
  all the stuff you want to do here
 </div>
 <h3>Title of the view</h3>
 <div>
  all the stuff you want to do here
 </div>
</div>

スクリプトファイルを次のようにします

 $('#accordion').accordion({ active: 0 });

詳細については、http: //jqueryui.com/demos/accordionをご覧ください。

于 2012-08-16T11:16:59.560 に答える
1

それをスパンに入れて、スパンを表示ブロック付きの素敵なボックスとしてスタイルできないのはなぜですか?

于 2012-08-16T11:12:10.337 に答える
1

span タグを使用できます。あなたがする必要があるのは、css のスパンタグ クラスに次のスタイルを追加することだけです。

.whatever {
    border: 1px solid #000;
    display: inline-block;
    margin: 0 5px;
}
于 2012-08-16T11:13:04.200 に答える
1

私はあなたの jsfiddle を更新しました: http://jsfiddle.net/zRqYM/21/そして、ほとんどのタグのネストを許可するので、pタグをタグに変更しました。div

原則として、divタグをタグ内に配置することはできません。pこれは、pタグ自体が閉じられるためです。

于 2012-08-16T11:22:02.503 に答える