【问题标题】:Change Menu Styling on fly or pass a param inside jQuery .each iterator即时更改菜单样式或在 jQuery .each 迭代器中传递参数
【发布时间】:2009-12-06 21:08:27
【问题描述】:

我有一堆菜单链接,想在点击时更改它们的样式 - 假设您点击“关于”,它会变成粗体和红色。我选择项目并将点击事件绑定到它们:

$("#nav_menu > *").bind("click",function(){doTrigger(this.id);});

这样我将点击项的 ID 传递给doTrigger

好的。现在在doTrigger 中,我正在尝试遍历这些项目并更改它们的样式:例如全部为 style1 并单击到 style2。问题是:

$("#nav_menu > *").each(function(){;});

不会让我传递点击项的 id。

我认为应该有一种不太复杂的方法来获得我需要的东西。此外,我想我也迷路了。

【问题讨论】:

    标签: javascript jquery menu coding-style


    【解决方案1】:

    试试这样的:

    $("#nav_menu > *").bind("click",function(){ $("#nav_menu > *").attr('class', 'class1'); $(this).attr('class', 'class2'); });
    

    这会在单击项目时将所有子项重置为class1,然后只有该项目是class2

    【讨论】:

      【解决方案2】:

      doTrigger() 中传递给$.each() 的函数在doTrigger() 的上下文中运行,因此可以访问doTrigger() 中的变量 - 您无需传递任何内容

      function doTrigger(id) {
      ...
         $("#nav_menu > *").each(function(){ /* you can access var id in here */ ;});
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-14
        • 2012-10-17
        • 2017-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-21
        相关资源
        最近更新 更多