要素を参照してDOMに追加するjQueryオブジェクトをいくつか作成しています。私は名前でそれらを参照できるようにしたいので、セレクタを束ねてセレクタを使用する必要はありません。ここでは、コードのダウン易しく書き直さ例 です:作成後、名前でjquery要素を追加しましたか?
<div class="body>
</div>
$(document).ready(function(){
wrapper = $("<div />")
.addClass("wrapper")
.click(function(e){
if (e.target === this)
$(this).hide();
})
$('.body').wrap(wrapper);
close = $("<button />")
.addClass("close")
.text('CLICK TO CLOSE')
.click(function(e){
///HIDE ".wrapper" FROM HERE
$(wrapper).hide();
///HIDE ".wrapper" FROM HERE
})
.prependTo($('.body'));
})
私は、「閉じる」ボタンをクリックすると、「ラッパー」を隠すことができるようにしたいです。私はを使用してそれを隠すことができましたが、複数のラッパーが存在することになります。ただ1つをターゲットにする必要があります。私は$(this).closest('.wrapper').hide()
を使うことができましたが、今は面倒です。余分なコードをすべて避けるために "close"内から "wrapper"変数を参照する方法はありますか?
所望の構造とは何ですか? '.wrapper'は一番外側のコンテナですか?各 '.wrapper'要素はそれ自身の' .body'を含んでいますか? '.close'は' .body'の子か兄弟ですか? – showdev
ええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ! DOMの代わりにコードでは、これはinit関数で呼び出されるので、コードは "モーダル"ごとに1回呼び出されますが、私が1つ解決できるかどうかを考えれば、すべてに適用できます。それはすべての必要があると思うなら更新します。 – DasBeasto