0

選択ボックスで onChange イベントを検出するメソッドがあります。ユーザーが選択ボックスをクリックすると、クリックが検出され、ID が取得され、php スクリプトを呼び出してその下の div にコンテンツがロードされます。

これは FF では正常に機能しているように見えますが、IE では何も起こりません。

変更を検出するコード:-

$("#select").change(function() {
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
});

関数 getSelectedRecords は、単に div ID の配列を返します。

私の loadContent() 関数は、recordIds を渡し、表示する正しい詳細を取得する $.ajax 関数を呼び出します。

つまり、 onChange() イベントを操作したくないだけです。selectedId を警告すると、正しい ID が得られます。recordIds を警告しても、何も得られません。

function getSelectedTierPanels(tierId) {
    var container = $('#tier'+tierId+' a').map(function() { 
        return this.id.match(/\d+$/);
    }).get();
        return container;
}

しかし、loadContent 関数の最初のパラメーターを警告すると、正しい応答が得られます。

何か案は?

4

1 に答える 1

0

チェックすることの1つは、使用しているjqueryのバージョンです。1.4.2未満のバージョンで問題が発生したようです。(出典

そこでの提案に基づく回避策...

$("#select").change(function() {
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
}).attr("onchange", function() { 
    var selectedId = $(this).val();
    recordIds = getSelectedRecords(selectedId);
    loadContent('records', recordIds);
});

おそらく少しクリーンアップするか、jqueryの新しいバージョンに更新するだけです。

于 2010-09-07T15:39:50.210 に答える