jPanelMenu中data-menu-position的类值

时间:2013-04-25 23:54:13

标签: jquery ajax

我想根据jPanelMenu的{​​{1}}的值为元素添加一个类。

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

data-menu-position

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

我尝试使用Branding,没有任何运气。我也尝试过类似的东西,但没有任何效果:

Login

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

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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", "#");
        }
    }
}