0

我想根据jPanelMenu's的值向元素添加一个类data-menu-position

我正在使用该插件构建一个移动网站,我的标题是这样的:

View menu | --------Branding-------- | Login

当我jPanelMenu打开时,我无法单击View menu按钮——当我这样做时,我被重定向到另一个页面,要么是从我的Branding区域链接的页面,要么来自我的Login链接。在这两种情况下,它都会关闭菜单,但我被重定向,而不是看到当前页面。

我试过使用z-index,没有任何运气。我也尝试过这样的事情,但没有任何效果:

$('#view_menu').addClass( $('body').attr('data-menu-position') );

这个想法是在菜单打开后将其更改为href#这样我就无法被重定向,但我似乎无法让它工作。

有没有人遇到过这种问题,或者有没有人找到任何解决方案(ajax,jquery ...)?

4

2 回答 2

0

好的,这就是我所做的:

$(document).ready(
function()
{
  // set default state from menu position attribute
});
$('#menu_btn').click(function()
{
  if($('body').attr("data-menu-position") == 'closed')
  {
    // user clicked -> what to do on open  }
  else
  {
    // user clicked -> what to do on close  }
});

完全符合预期。使用jquery if语句,我可以检查data-menu-position值并删除我的链接,如下所示:

$('#menu_btn').click(function()
{
    if($('body').attr("data-menu-position") == 'closed')
    {
        if($('body').attr("data-menu-position") == 'closed')
        {
            $("#menu_btn a").attr("href", "#");
        }
    }
}
于 2013-04-29T18:31:08.813 回答
0

我不确定实际问题的根源是什么,因为我从未使用过 jPanelMenu,也许问题出在其他地方。
但是,我可以帮助实现您建议的“解决方法”。

$('#view_menu').click( function() {
  $(this).children('a[data-menu-position=foobar]').attr('href','#');
});

本质上,您单击具有 id 'view_menu' 的元素,并扫描其子元素以查找具有属性 'data-menu-position' 的锚点,该锚点具有 'foobar' 作为其值。(您可以将 foobar 替换为变量)然后将该锚点的 href 更改为 '#'

显然结构可能不一样,所以我认为您将能够弄清楚其余部分。
如果锚不是 id 的直接子代,那么您可以使用“find”而不是“children”。

你可以在这里测试它:http: //d.pr/VeGB/5KtUUeMT

于 2013-04-26T23:10:02.443 回答