2012-09-27 44 views
5

[RESOLVED]

查看下面的問題詳情。試圖更新jQuery 1.4.2插件1.8.2,但得到語法錯誤,無法識別的表達式

var maxUl = $(objUl+'[rel="'+maxItems+'"]'); 

需要是

var maxUl = $(objUl.attr('id')+'[rel="'+maxItems+'"]'); 

以與當前的jQuery 1.8.2實現功能。


首先感謝花時間看我與我的問題。我已經瀏覽了其他很多問題,並且我可以說這個問題並不一樣。

我發現了從螢火這個錯誤,當我試圖加載頁面上的jQuery插件:錯誤:語法錯誤,不能識別的表達式:[對象的對象] [相對=「7」]

注:運行jQuery 1.4.2時,插件工作正常,但運行多個jQuery實例不適用於此項目。

我想實現這個插件可以發現here和下載here

最佳推測

到目前爲止,我覺得我已經成功地縮小它在自己的js文件這兩行( jquery.dcdrilldown.1.2.js)

// Get level of largest sub menu 
var maxUl = $(objUl+'[rel="'+maxItems+'"]'); 
var getIndex = findMaxIndex(maxUl); 

而且盡我所能調用

var maxUl = $(objUl+'[rel="'+maxItems+'"]'); 
012後告訴休息

因爲螢火蟲沒有使它在findMaxIndex()方法的斷點。

我的HTML文件看起來像這樣

JS調用

$(function() { // Drill down menu 
    $('#drilldown').dcDrilldown({ 
    speed   : 'slow', 
    saveState  : true, 
    showCount  : false, 
    linkType  : 'breadcrumb' 
}); 

HTML UL

<div class="graphite dd-container"> 
<ul id="drilldown"> 
<li><a href="#">Home</a> 
    <ul> 
    <li><a href="#">Page 1</a></li> 
    <li><a href="#">Page 2</a></li> 
    <li><a href="#">Page 3</a></li> 
    <li><a href="#">Page 4</a></li> 
    </ul> 
</li> 
<li><a href="#">Products</a> 

任何幫助,您可以提供將不勝感激,謝謝大家。

+0

解決了我自己的錯誤!結果發現它與我注意到的兩條線中的第一條有關。使用.append()函數而不是附加'+'所需的語法。正確的線是這樣的: \t \t \t \t var maxUl = objUl.append('[rel =''+ maxItems +'「'''; –

+1

典型原因:您的選擇器與DOM中的任何元素都不匹配, 您正在使用並非總是爲真的選擇器循環對象,或者 選擇器的格式不正確。退房:http://www.thalesjacobi.com/Jquery_error_uncaught_exception_Syntax_error_unrecognized_expression – zoranc

回答

6

你需要看看objUl正在設置什麼。我敢打賭,在它連接到另一個字符串時,它用於將自己解析爲字符串。現在它可能不會這樣做(因此[object Object]部分)。

看看什麼objUl正在設置,並試圖得到它可能是.attr('id')的值而不是。

編輯 變化

var maxUl = $(objUl+'[rel="'+maxItems+'"]'); 

var maxUl = $(objUl.attr('id')+'[rel="'+maxItems+'"]'); 
+0

謝謝我設法做到這一點。它試圖創建一個DOM對象,並以jQuery不喜歡的舊方式進行。 objUi元素需要附加.append()函數,而不是「+」號。非常感謝您的回答! –

+0

只是試圖給你投票,可悲的是我沒有它的代表:(儘管謝謝你! –

+0

你的答案是更正確的,然後我自己的,雖然.append()將工作,它將它作爲文本添加到頁!使用你的.attr()方法雖然工作完美。 –

0

要使用jQuery 1.10.4工作如下變化使得,它的工作原理finee

// var maxUl = $(objUl+' [rel="'+maxItems+'"]'); 
var maxUl = $(objUl.html()+' [rel="'+maxItems+'"]'); 

//$('#'+idHeader+' a').live('click',function(e){ 
$('#'+idHeader).on('click','a',function(e){ 
相關問題