使用带有数组的 Jquery 选择器[重复]

Posted

技术标签:

【中文标题】使用带有数组的 Jquery 选择器[重复]【英文标题】:using Jquery selector with an array [duplicate] 【发布时间】:2014-05-11 03:12:29 【问题描述】:

我正在尝试将 jquery 选择器与对象数组一起使用。 这是一个例子..

//Declaration
    var filterItems = Array();
    filterItems[0] =  clickDiv: "CategoryPanelHeader", div: "NarrowByCategoryPanelWrapper" ;
    filterItems[1] =  clickDiv: "ExpandYourResultsHeader", div: "ExpandResultPanelWrapper" ;
    filterItems[2] =  clickDiv: "Keyword", div: "KeywordDiv" ;
    filterItems[3] =  clickDiv: "Manufacturer", div: "NarrowByManufacturerPanelWrapper" ;
    filterItems[4] =  clickDiv: "Credentials", div: "CredentialsDiv" ; 

和选择器

$(document).ready(function () 
  //binds the click events...
  for (var i = 0; i < filterItems.length; i++) 
     $('#'+ filterItems[i].clickDiv).live('click', function () 
     togglemenu($('#' + filterItems[i].div));
     );
  
);

当我发出警报但 jquery 没有绑定点击事件时,我能够正确读取每个项目。

我将如何使用数组来绑定 onclick 事件?

【问题讨论】:

你用的是什么版本的jQuery? 我正在使用 jquery 1.8.14 正如 oGeez 所说。试试.on,看看会不会有什么不同。 .on 而不是 .live 会出错见上文,我编辑了版本。我正在使用 1.8.14 developer.mozilla.org/en-US/docs/Web/javascript/Guide/… 【参考方案1】:

我明白了! 你只需要调用一个外部函数

   $(document).ready(function () 
            // gets all the click parameters...
            for (var i = 0; i < filterItems.length; i++) 
                bindClicks(($('#' + filterItems[i].clickDiv)), ($('#' + filterItems[i].div))  );
            
        );
           function bindClicks(clickdiv, expanddiv) 
             //binds the click events
            clickdiv.click(function () 
                togglemenu(expanddiv);
            );
        

【讨论】:

以上是关于使用带有数组的 Jquery 选择器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery选择器总结

JQuery选择器大全

jQuery选择器总结

jQuery选择器总结

jQuery选择器总结

jQuery选择器