尝试将jQuery 1.4.2插件更新为1.8.2,但收到语法错误,无法识别的表达式

时间:2012-09-27 20:08:12

标签: ajax jquery jquery-plugins

[解决]

请参阅下面的问题详情。

该行

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

需要

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

使用当前的jQuery 1.8.2实现。


首先感谢您花时间与我一起看待我的问题。我已经查看了许多其他问题,并且我可以说这个问题不一样。

当我尝试在页面上加载jQuery插件时,我从firebug收到此错误:错误:语法错误,无法识别的表达式:[object Object] [rel =“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+'"]');

因为firebug没有进入findMaxIndex()方法中的断点。

我的HTML文件看起来像这样

JS Call

$(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>

非常感谢您提供的任何帮助,谢谢大家。

2 个答案:

答案 0 :(得分:6)

您需要查看objUl的设置。我打赌它在用于连接到另一个字符串时将其自身解析为字符串。现在它可能不会那样做(因此[object Object]部分)。

看看objUl的设置是什么,并尝试获得它的.attr('id')值。

修改 改变

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

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

答案 1 :(得分:0)

要使用jQuery 1.10.4,以下更改会使其正常工作

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

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