jQuery,函数未定义,仅在IE< 9上

时间:2013-03-12 16:48:25

标签: jquery internet-explorer function

我在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") );
}
}
});

没有错误,没有,只是没有效果。

1 个答案:

答案 0 :(得分:3)

updateList的范围在$(function(){ });内。它在任何浏览器中都不应该没问题。

为什么你需要2个不同的就绪处理程序?

将文件移到文件外部,如下所示,

<script>
function updateList () { }

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

或者只使用一个就绪处理函数。

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

   //some other code

   updateList();
});
</script>