2017-09-05 8 views
0

私はdropdownの言語(fr、es、en ...)を格納するリストを持っています。 私はフラグimageを持っています。これは、選択オプションに基づいてソースを取ります。変更イベントの は、私が何をしないのですjQueryロード選択オプションが起動しません

<asp:DropDownList ID="ddlLanguages" runat="server" AutoPostBack="false" > 
    <asp:ListItem Text="Ita" Value="it-IT" /> 
    <asp:ListItem Text="Eng" Value="en-us" /> 
    <asp:ListItem Text="Esp" Value="es-AR" /> 
</asp:DropDownList> 

JavaScript

$(document).ready(function() { 
    $("#ddlLanguages").on('load change', function() { 

    var select = $("#ddlLanguages").find(":selected").text(); 
    var pathItalia = "../....jpg"; 
    var pathInghilterra = "../....jpg"; 
    var pathSpagna = "../.....jpg"; 

    switch (select) { 
     case "Ita": 
     $("#flagImg").attr("src", pathItalia); 
     break; 
     case "Eng": 
     $("#flagImg").attr("src", pathInghilterra); 
     break; 
     case "Esp": 
     $("#flagImg").attr("src", pathSpagna); 
     break;   
    } 
    });  
}); 

最初のロードでもなく動作しますか?

+0

私はあなたの '$(「#のddlLanguagesは」)'セレクタは、リストを見つけるされていないことを想像しますあなたは 'ClientId'ではなくASPコントロールの' ID'をターゲットにしています。代わりにClientIdMode = "static"を ''に置くか、 '$("#<%= ddlLanguages.ClientId%> ")。find(...)'を実行してみてください。 – Santi

+0

どちらの場合も変更はありません – jon

+0

ブラウザにアクセスして、そのコードからHTMLをコピーしてください。 – robert

答えて

1

ドロップダウンで実際に何も読み込まれないため、起動するイベントはです。

あなたが最初pageload上で機能を実行したい場合は、変更イベントをトリガー手動

$("#ddlLanguages").on('change', function() { 
    // your code here 
}).trigger('change'); // fire on load 
+0

それは負荷の問題を解決するでしょうが、変更したときではありません。 – robert

+1

@robert - 「...変化イベントがうまくいく」*という質問では、その部分はうまく動作していますか? – adeneo

+0

私はその部分を逃した – robert

関連する問題