1

我有这段代码可以滑动一些消息,

JavaScript

$(function() {
    $('#bottom_menu li a').click(function(e) {
        e.preventDefault();
        animateSlider(this.hash);
    });

    function animateSlider(hash) {
        if (!$('#container div.open').length) {
            if (hash == '#about') {
                openPopup(hash);
            }
            if (hash == '#contact') {
                openPopup(hash);
            }
        } else {
            if (hash == '#about') {
                openAndClose(hash)
            }
            if (hash == '#contact') {
                openAndClose(hash)
            }
        }
    }

    function openPopup(hash) {
        $(hash + '_popup').slideToggle().addClass('open');
    }

    function openAndClose(hash) {
        if ($(hash + '_popup').hasClass('open')) {
            $($(hash + '_popup')).slideToggle().removeClass();
        } else {
            $('#container div.open').slideToggle().removeClass();
            $(hash + '_popup').slideToggle().addClass('open');
        }
    }
});

HTML

<nav id="men55">
    <ul id="bottom_menu">
        <li style="text-align:left;">
            <a href="#about"><font face="din" size="4">onde <br />estamos</font></a>
        </li>
        <li style="text-align:left;">
            <a href="#contact"><font face="din" size="4">osnossos<br />parceiros</font></a>
        </li>
        <li style="text-align:left;">
            <a href="index2.php?web=news" <?php if($web == "news") {echo 'class="corrente"';} ?>><font face="din" size="4">news <br />press</font></a>
        </li>
    </ul>
</nav>

问题是,当 href=#contact 或 href=#about 工作正常时,但如果我想放一个 href=index2.php?web=teste 不工作...什么也没有发生...问题是 javascript 块nav 或 li 内的点击

4

1 回答 1

2

只需将初始选择器更改为仅选择href属性以“#”开头的锚标记,使用[href^="#"]. 改变:

$('#bottom_menu li a').click(function(e) { ... });

到:

$('#bottom_menu li a[href^="#"]').click(function(e) { ... });

这将忽略任何href属性不以“#”开头的链接:

#about /* Prevented */
#contact /* Prevented */
index2.php /* Ignored */
index2.php?web=teste /* Ignored */
index2.php#test /* Ignored */
于 2013-10-11T10:57:35.540 回答