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 に答える