私はjQueryスクリプトを使ってページのdivを展開/折りたたんでいます。私は今、コードを複製しようとしているので、同じことをする2つのdivがありますが、それらを開く/閉じるの両方をクリックすると、それらを独立させたいと思います。ちょうど私が間違って何をしているのだろうか?事前にJavaScriptの項目を独立させる
(function($) {
jQuery(document).ready(function() {
Panel.init();
$(document).on('click', '.tab-controller1, .tab-controller2', function() {
Panel.togglePanel();
});
});
var Panel = {
isVisible : false,
showMessage : null,
hideMessage : null,
animationDuration : 300,
animationEasing : 'linear',
init: function() {
Panel.hidePanel();
},
hidePanel : function() {
$('.infoToggle1, .infoToggle2').animate({
bottom : -(Panel.getAnimationOffset())
}, Panel.animationDuration, Panel.animationEasing, function() {
Panel.isVisible = false;
Panel.updateTabMessage();
});
},
showPanel : function() {
$('.infoToggle1, .infoToggle2').animate({
bottom : 0
}, Panel.animationDuration, Panel.animationEasing, function() {
Panel.isVisible = true;
Panel.updateTabMessage();
});
},
togglePanel : function() {
((this.isVisible) ? this.hidePanel : this.showPanel)();
},
updateTabMessage : function() {
if (this.isVisible) {
$('.tab-controller1 .close, .tab-controller2 .close').show();
$('.tab-controller1 .show, .tab-controller2 .show').hide();
} else {
$('.tab-controller1 .close, .tab-controller2 .close').hide();
$('.tab-controller1 .show, .tab-controller2 .show').show();
}
},
getAnimationOffset : function() {
return $('.panel-content1, .panel-content2').height();
}
}
})(jQuery);
ありがとう:
<div class="infoToggle1">
<div class="panel-controller">
<div class="tab-controller1">
<span class="close">CLOSE</span>
<span class="show">MORE INFO</span>
</div>
</div>
<div class="panel-content1">
Content goes here
</div>
</div>
<div class="infoToggle2">
<div class="panel-controller">
<div class="tab-controller2">
<span class="close">CLOSE</span>
<span class="show">MORE INFO</span>
</div>
</div>
<div class="panel-content2">
Content goes here
</div>
</div>
と、次のjQueryコード:
はこれまでのところ、私は、次のHTMLを持っています!
@PseudoNinjaは正しいです。 2人の別個のアクターが必要な場合は、スクリプトをプラグインする必要があります。あなたのコードの正しい定型文は次のようです:http://stefangabos.ro/jquery/jquery-plugin-boilerplate-revisited/ –
あなたのコード/マークアップを全くリファクタリングすることはできますか?私が投稿できる解決策がありますが、それはかなりまともなオーバーホールですので、ベースコード/マークアップを編集することはそれほど助けにならないでしょう。 – War10ck
これはあなたのために働くかもしれませんが、元のコードから大きくずれています:[jsfiddle.net ...](https://jsfiddle.net/warlock5658/wuogq4ve/1/) – War10ck