Jquery jPanelMenu中数据菜单位置的类值

Jquery jPanelMenu中数据菜单位置的类值,jquery,ajax,Jquery,Ajax,我想根据jPanelMenu的data菜单位置的值向元素添加一个类 我正在使用插件构建一个移动站点,我的标题如下: View menu | --------Branding-------- | Login $('#menu_btn').click(function() { if($('body').attr("data-menu-position") == 'closed') { if($('body').attr("data-menu-position") =

我想根据
jPanelMenu
data菜单位置的值向元素添加一个类

我正在使用插件构建一个移动站点,我的标题如下:

View menu | --------Branding-------- | Login
$('#menu_btn').click(function()
{
    if($('body').attr("data-menu-position") == 'closed')
    {
        if($('body').attr("data-menu-position") == 'closed')
        {
            $("#menu_btn a").attr("href", "#");
        }
    }
}
当我的
jPanelMenu
打开时,我无法点击
查看菜单
按钮——当我点击时,我会被重定向到另一个页面,或者是从我的
品牌
区域链接的页面,或者是从我的
登录
链接链接的页面。在这两种情况下,它都会关闭菜单,但我会被重定向,而不是查看当前页面

我尝试过使用
z-index
,但没有任何运气。我也尝试过类似的方法,但没有任何效果:

$('#view_menu').addClass( $('body').attr('data-menu-position') );
这个想法是在菜单打开后将
href
更改为
#
,这样我就无法重定向,但我似乎无法让它工作


是否有人遇到过此类问题,或者是否有人找到了任何解决方案(ajax、jquery…)

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

$('#view_menu').click( function() { $(this).children('a[data-menu-position=foobar]').attr('href','#'); }); $(“#查看菜单”)。单击(函数(){ $(this.children('a[data menu position=foobar')).attr('href','#'); }); 基本上,您可以单击id为“view_menu”的元素,并扫描其子元素,以查找具有属性“data menu position”的锚点,该属性的值为“foobar”。(您可以用变量替换foobar),然后将该锚点的href更改为“#”

显然,结构可能不一样,因此我认为您可以找出其余部分。
如果锚点不是id的直接子级,则可以使用“查找”而不是“子级”


您可以在这里进行测试:

好的,下面是我所做的:

$(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
语句,我可以检查
数据菜单位置
值的位置,并删除我的链接,如下所示:

View menu | --------Branding-------- | Login
$('#menu_btn').click(function()
{
    if($('body').attr("data-menu-position") == 'closed')
    {
        if($('body').attr("data-menu-position") == 'closed')
        {
            $("#menu_btn a").attr("href", "#");
        }
    }
}