0

私はこれをjQueryに持っています:

$(function(){ 

function updateList(){ 
    //HERE MY FUNCTION
}

});

と :

$(document).ready(function() {
    updateList();
});

それらは同じファイルにあります。ページをロードすると、が表示されますReferenceError: updateList is not defined

FirefoxとIE9では問題ありません。

あなたはなにか考えはありますか ?ありがとう !

編集:そしてボーナスの質問、このコードはIE <9では機能しません:

$.ajax({
type: "GET",
url: "rechercheArtisan_ajax.html?action=metier&IDmetier="+secteur_activite, 
dataType: ($.browser.msie) ? "text" : "xml",
success: function( data ) {
var xml;
if (typeof data == "string") {
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
} else {
xml = data;
}
// Returned data available in object "xml"
if ( $(xml).is("erreur") )
{
alert( "Erreur : " + $(xml).find("erreur").text() );
}
else
{
$("#id_metier").attr("disabled", "");
updateList( "metier" , $(xml).find("list") );
}
}
});

エラーも、何も、効果はありません。

4

1 に答える 1

3

のスコープupdateListは内部にあり$(function(){ });ます。どのブラウザでも問題ないはずです。

なぜ2つの異なるレディハンドラーが必要なのですか?

以下のように、関数をドキュメントの外に移動して準備を整えます。

<script>
function updateList () { }

$(function () {
   updateList();
});
</script>

または1つのreadyハンドラー関数を使用するだけです。

<script>   
$(function () {
   function updateList () { }

   //some other code

   updateList();
});
</script>
于 2013-03-12T16:51:51.440 に答える