<span class="open">
だから私はコンテンツを表示するために折りたたみ可能なdivの高さを増やすボックスを持っています。CSSの高さだけで折りたたみ可能で、クリックを開く機能で高さを自動に設定します。簡単で、これは機能します。
オープンスパンとクローズスパンを追加しようとすると、問題が発生します。それらを実際のhtmlに含めると、正常に機能します。それらを追加すると、機能しなくなります。これは、ロード後に作成されたため、jsが.click関数を適用できないことが原因であると考えましたが、同じ関数で作成して.clickを適用しても、この問題は解決しません。
これに影響を及ぼしている可能性のあるものはありますか?ありがとう。
HTML:
<div class="box collapsible">
<h3>Title</h3>
<p>This is a sample paragraph that is here for placer purposes.</p>
</div>
CSS:
.box { height: 20px; border: 1px solid #000000; padding: 10px; margin: 20px; position: relative; overflow: hidden; }
h3 { margin: 0 0 20px 0; line-height: 20px; }
.open, .close { text-indent: -9999px; width: 20px; height: 20px; position: absolute; top: 10px; right: 10px; }
.open { background: #00ff00; }
.close { background: #0000ff; }
JS:
$(function(){
var box = $(".collapsible");
var close = $(".collapsible span.close");
var open = $(".collapsible span.open");
box.each(function(){
box.append('<span class="open">Open</span>');
open.each(function(i){
open.click(function(){
alert("You clicked open");
$(this).parent(box).css("height","auto").append('<span class="close">Close</span>');
$(this).hide();
$(this).parent().find(close).show();
});
});
close.each(function(i){
close.click(function(){
$(this).parent(box).css("height","15px");
$(this).hide();
$(this).parent().find(open).show();
});
});
});
});