2010-08-18 49 views
0

我有這樣的代碼,使用jQuery的長度IEXPLORER 8不工作,以檢查是否存在DIV

window.onload = function(){ 
    if($('div.colorPicker').length){ 
     $("div.colorPicker").click(function(){ 
      if($('.field_sku').length){ 
       code = $(this).children('.tmpSKU').html(); 
       if(!code || code==null){ 
        code = "Item Code not set yet"; 
       } 
       $('.field_sku').filter(".value").html(code); 
      } 
     }); 
    } 
} 

我申請這對我使用jquery創建一個自定義模塊。它在safari,firefox,chrome中運行正常,但在IE8中不行,我認爲它在其他版本的IE中可能不起作用。 我得到這個錯誤

'length' is null or not an object on 
imagemultiple.js         line 2 
Code:0            char 2 

沒有這個

if($('div.colorPicker').length){ 
} 

它在其他瀏覽器我補充說,它一直把這個錯誤彌補IE錯誤之後,但工作得很好。

我的懷疑是與Mootools和Jquery有關,他們可能會在那裏發生衝突。由於某種原因,在IE8中,作爲Jquery(在其他瀏覽器中)工作的代碼可能會嘗試用作Mootools。我不知道這是否合理?

反正它工作正常,一旦一頁有一個類colorpicker的div,去了它不是當問題出現。

+0

你試過用http://api.jquery.com/jQuery.noConflict/ – jAndy 2010-08-18 15:08:32

回答

1

聽起來很奇怪。但是你可能在這裏遇到了一些衝突問題。嘗試

jQuery.noConflict(); 
(function($) { 
    $(function() { 
     if($('div.colorPicker').length){ 
      $("div.colorPicker").click(function(){ 
       if($('.field_sku').length){ 
        code = $(this).children('.tmpSKU').html(); 
        if(!code || code==null){ 
        code = "Item Code not set yet"; 
        } 
       $('.field_sku').filter(".value").html(code); 
       } 
      }); 
     } 
    }); 
})(jQuery);