0

请查看http://iglica.dbox.pl/modx/(客户端图形项目)

检查菜单上的“KURSY” - 在主页上一切正常,菜单滑动,我可以从子菜单中选择一些东西,等等。不知何故,当我从其他地方点击“KURSY”时,MODX 将我重定向到主页。

负责菜单的代码在 menu.min.js 中(我专门为这个网站买了它——我不是 jQuery 熟悉的人)。

附言

我试过这个http://rtfm.modx.com/display/revolution20/Named+Anchor没有运气

附言

jQuery -

$(function () {
    $('#mainNav ul li.slide a').click(function () {
        var content = ($(this).parent().find("div").html());
        $('#navWrapper #subNav #subNavContainer').fadeOut(100, function () {
            $('#navWrapper #subNav #subNavContainer').html(content);
            $('#navWrapper #subNav #subNavContainer').fadeIn(100);
            $('#navWrapper').stop(false, false).animate({
                'left': 0
            }, 300)
        })
    });
    $('#navWrapper').mouseleave(function () {
        $('#navWrapper').stop(false, false).animate({
            'left': -200
        }, 300)
    })
});
4

1 回答 1

0

尝试用 span 标签替换您不想做任何事情的 a 标签,看看您的 js 代码是否仍然可以正常工作。也许你必须在之后查看你的 css 样式。

<li class="slide"><span>Kursy</span>
<div class="submenu">
<ul id="submenu">
<li><a href="index.php?id=12">Dla dzieci</a></li>
<li><a href="index.php?id=23">Dla młodzieży</a></li>
<li><a href="index.php?id=13">Dla dorosłych</a></li>
</ul>
</div>
</li>

好的,当锚点触发滑动功能时,可以尝试js解决方法:

HTML

<li class="slide"><a href="#" class="preventdefault">Kursy</a>
    <div class="submenu">
    <ul id="submenu">
    <li><a href="index.php?id=12">Dla dzieci</a></li>
    <li><a href="index.php?id=23">Dla młodzieży</a></li>
    <li><a href="index.php?id=13">Dla dorosłych</a></li>
    </ul>
    </div>
</li>

JS

(function ($) {
    $(window).ready(function () {
        $('.preventdefault').on("click", function (e) {
            //Uncomment if the anchor is required on the url
            //document.location.hash = $(this).attr('href');

            return false;
        });
    });
}(jQuery));

您的代码扩展 + 添加 html 类:

$(function () {
    $('#mainNav ul li.slide a').click(function (e) {
        var content = ($(this).parent().find("div").html());
        $('#navWrapper #subNav #subNavContainer').fadeOut(100, function () {
            $('#navWrapper #subNav #subNavContainer').html(content);
            $('#navWrapper #subNav #subNavContainer').fadeIn(100);
            $('#navWrapper').stop(false, false).animate({
                'left': 0
            }, 300)
        })

        if ($(this).hasClass('preventdefault')) {
            //Uncomment if the anchor is required on the url
            //document.location.hash = $(this).attr('href');

            e.preventDefault();
            e.stopPropagation();
        }

    });
    $('#navWrapper').mouseleave(function () {
        $('#navWrapper').stop(false, false).animate({
            'left': -200
        }, 300)
    })
});
于 2013-07-24T17:03:54.770 回答