2017-05-09 10 views
1

を等しくするための変数を作成し、私は機能に取り組んでいます:動的に作成されたDOM要素

var container  = $('#container'), 
    line1   = $('#line1'), 
    line2   = $('#line2'), 
    line3   = $('#line3'), 
    line4   = $('#line4'), 
    postcode  = $('#postcode'), 
    addressPicker = $('#selector'), 
    noneOfTheAbove = $('#noneOfTheAbove'); 

    $(document).on('click', '#noneOfTheAbove', function() 
    { 
     container.removeClass('hidden'); 

     noneOfTheAbove.addClass('noDisplayElementImportant'); 
     addressPicker.addClass('hidden'); 

     line1.val(''); 
     line2.val(''); 
     line3.val(''); 
     line4.val(''); 
     postcode.val(''); 
    }); 

これで唯一の問題は、DOMを動的にボタンのクリックで作成されますです。したがって、$(document).ready()のためにこのような変数を使用することはできません。変数に動的DOM要素を割り当てるにはどうすればよいですか?それは$(document).find('#idHere')のようなものでしょうか?

おかげ

UPDATE 1

作りは(charlietfl答えを使用して)ローカル、グローバルvarsの:彼らは動的であるとして

var container, 
    line1, 
    line2, 
    line3, 
    line4, 
    postcode, 
    addressPicker, 
    noneOfTheAbove; 

$(document).on('click', '#noneOfTheAbove', function() 
{ 
    container  = $('#container'); 
    line1   = $('#line1'); 
    line2   = $('#line2'); 
    line3   = $('#line3'); 
    line4   = $('#line4'); 
    postcode  = $('#postcode'); 
    addressPicker = $('#selector'); 
    noneOfTheAbove = $('#noneOfTheAbove'); 

    container.removeClass('hidden'); 

    noneOfTheAbove.addClass('noDisplayElementImportant'); 
    addressPicker.addClass('hidden'); 

    line1.val(''); 
    line2.val(''); 
    line3.val(''); 
    line4.val(''); 
    postcode.val(''); 
}); 

答えて

1

は、彼らはもちろん

$(document).on('click', '#noneOfTheAbove', function() { 

    var container = $('#container'), 
    line1 = $('#line1'), 
    line2 = $('#line2'), 
    line3 = $('#line3'), 
    line4 = $('#line4'), 
    postcode = $('#postcode'), 
    addressPicker = $('#selector'), 
    noneOfTheAbove = $('#noneOfTheAbove'); 
    container.removeClass('hidden'); 

    noneOfTheAbove.addClass('noDisplayElementImportant'); 
    addressPicker.addClass('hidden'); 

    line1.val(''); 
    line2.val(''); 
    line3.val(''); 
    line4.val(''); 
    postcode.val(''); 
}); 
+0

ああ存在しないときにイベントハンドラ内でこれらの変数を定義します!今やとても愚かなようですね。xD Thanks :) – ThisGuyHasTwoThumbs

+0

あなたはそれらを関数のローカルなので、それらはその関数の外では役に立たないので、それらはまったく必要ありません。 –

+0

@ANS *「それらはまったく必要ありません」*主観的です... domの中で何回質問されたかに依存します。表示される基本コードに基づいて同意しますが、実際のコードがより複雑かどうかもわかりません。外部に宣言しても、問題のある理由はありません – charlietfl

1

は、それらを熱心にロードしないでください。あなたがそれらを必要とするときにそれらを使用することを意味する怠惰なローディングで行ってください。

var container, 
    line1,line,.. ; 
    $(document).on('click', '#noneOfTheAbove', function() 
     { 
      container = $('#container'); 
      container.removeClass('hidden'); 

      ... // others 

      ... 
     }); 
関連する問題