簡體   English   中英

IE中出現奇怪的jQuery錯誤:對方法或屬性訪問的意外調用

[英]Strange jQuery error in IE: Unexpected call to method or property access

像所有人一樣,在Firefox,Chrome,Safari和Opera中,一切都可以順利運行。 但IE ......這是另一個故事:)

這是我的完整代碼: http//pastebin.com/ZdzzFayJ

在IE中至少有一件好事,帶着以下錯誤來找我:

SCRIPT65535: Unexpected call to method or property access. 
jquery.min.js, line 3 character 29586

怎么了? 我找不到一個bug :(


UPDATE

我清理了我的代碼,javascript函數現在稱為jQuery插件。 我仍然收到錯誤,但現在我知道在哪里。

在我的代碼中,我在IE警告錯誤消息的代碼旁邊放置了IE ERROR注釋。

插件: http//pastebin.com/6Dnd1qtd

jQuery: http//pastebin.com/wiHALjZx

我不知道為什么IE打破那里..任何解決方案?


此致,馬里奧

對我來說問題是:

我使用lib應用於所有環境。

my_lib.js

jQuery.ajax({
        data : jQuery('form').serialize(),
        url : '/'+action[1]+'/post_form',
        type : 'POST',
        dataType: 'json',
        success: function(data){
            $('#my_name_id').find('option').remove().end().append(data.select_options);

});

Json回歸:

select_options  "<option></option>"

一切都好! 但是,在一種形式中,#my_name_id不是選擇,是隱藏字段,它是用戶的預選值和禁用屬性。

這就是IE8上的jquery檢索錯誤的原因。

解決方案是:

my_lib.js

jQuery.ajax({
        data : jQuery('form').serialize(),
        url : '/'+action[1]+'/post_form',
        type : 'POST',
        dataType: 'json',
        success: function(data){
          if( $('#my_name_id').is('select') ) {
             $('#my_name_id').find('option').remove().end().append(data.select_options);
          }
});

希望它能幫助別人!

echo_data(data)之后,您的get_data函數中似乎缺少分號。

request.done(function(data) {
    if (data) echo_data(data) _loading.hide();
    _ads_listing.unmask();
});

我用以下方式解決了這個問題:

  • 清理我的代碼( JSHint非常有幫助!)
  • 之前我把"//html5shiv.googlecode.com/svn/trunk/html5.js"包含在IE中,認識到我正在使用HTML5標簽,例如section,header,...
  • 在jQuery插件中,我用html內容填充元素。 我使用defaultOpts.data_container.html("HTML CONTENT")而不是使用$(defaultOpts.data_container).html("HTML CONTENT") defaultOpts.data_container.html("HTML CONTENT") 所以我將參數中的對象元素$(#ID)發送到插件而不是僅發送元素ID "#ID"

現在,一切正常。 謝謝大家的支持和努力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM