2012-02-17 4 views
7

で()の変化に、私はドロップダウンに変更イベントのイベントハンドラを作成しようとしています。ドロップダウンはDOMに動的に追加されます。ほとんどのブラウザでうまく動作するようですが、IE8は難しいと思っています。回避策はありますか? この作品はありますか?私はここや他の場所で読書をたくさんやってるし、入力は多くの場合、矛盾しているようだと私が見つけた/しようとした提案されたソリューションは、私のために働いていません。jQueryのは、jQueryの1.7.1を使用してIE8

誰もが、これはその場で作成された.state-seletorドロップダウンのためにIE8で動作するべきかどうかを明確にすることはできますか?

$(document).on('change', '.state-selector', function(e) { 
    e.preventDefault(); 
    alert('ON()'); 
}); 

私はチャンスをうかがっておこうが、私は私の心を失う前に、誰もがこれをクリアすることができれば、私はそれを感謝します。

ありがとうございました。

<select name="data[Contractor][service_area_state]" class="state-selector"> 
    <option value="">Select a state...</option> 
    <option value="AK">Alaska</option> 
    <option value="AL">Alabama</option> 
    ... 
    <option value="WI">Wisconsin</option> 
    <option value="WV">West Virginia</option> 
    <option value="WY">Wyoming</option> 
</select> 

UPDATE 2

@ mblase75のポイントに、多分この方法は、動的に生成するために使用される:

以下@ Wertisdkの要求に応じてUPDATE

は、ここに私のドロップダウンスニペットですドロップダウンの問題。基本的には、既存のDOMノードをクローンしてそこで選択された値を空にしています。 .additionalink aも動的に生成されることに注意してください。 3

がここに似たJSFiddle

$(document).on('click', '.additionallink a', function(e) { 
    e.preventDefault(); 

    var copy = $(this).closest('.template').clone(); 

    // Massage the template copy's content and insert it 
    // - Clear the value selected in the original dropdown 
    // - Clear the list of counties loaded based on the original dropdown selection 
    $('.state-selector', copy).val($('.state-selector option:first', copy).val()); 
    $('.counties', copy).empty(); 
    $(this).closest('.template').after(copy); 
}); 

UPDATE:あなたは.addtionallink aをクリックすると、クローン化されているテンプレートは、新しい.addtionallink aノードが含まれています。それはほとんど私のコードですが、すべての違いかもしれない一つのキー違いがあります。このフィドルでは、.append()を使用して、状態の選択に基づいて新しいコンテンツを挿入します。私のコードは​​メソッドを使用しています。それ以外の場合は、すべて同じです。

+0

あなたは、HTMLのスニペットを投稿することができ、jQueryがために起こっています関わる? これは、ターゲットとするhtml要素に固有のものです。 – Wertisdk

+0

私はこの答えを楽しみにしています。私は同じ問題を抱えています。 –

+0

@Wertisdk、上記の質問を更新しました。私はそれがどれほど有益かはわかりませんが、尋ねるとあなたは(時には)受け取るでしょう。 :-) –

答えて

1

私はここに魔法の言葉はあなたがすでに1.7.2ベータ版で修正されていたこのバグに実行していることがあり、.clone()だと思う:http://bugs.jquery.com/ticket/11076

+0

チケットはIE8に固有のものではありませんが、これは私が見ているものです。私は何か見落としてますか? –

+0

http://code.jquery.com/jquery-git.jsでコードを試して、動作するかどうか確認してください。 –

+0

Yessuh、それは確かに表示されます。 IE8固有のバグ(少なくとも私のために)。私はもう少しテストをしますが、初期の兆候は良いです。 –

関連する問題