0

私は自分のウェブサイトに、アクティブなときに(1回クリックすると)特定のクラスを持つリンクにターゲット_blankを追加hrefして、新しいタブで開くボタンを作成しようとしています。

これはボタンのコードです

    <li id="toolbar-display">
        <dl>
        <dt>Display</dt>
        <dd id="toolbar-display-newtab" class="first last"><span>New Tab</span></dd>
        </dl>
    </li>

次に、これは追加したい href リンク クラスです_blank

    <a class="item-link" href="url">

このために、 http://jsfiddle.net/UJMgQ/2/から変更した次の JavaScript を使用します。

    <script type="text/javascript">
        $(function () {
        $('#toolbar-display-newtab').click(function () {
        if ($(this).toggleClass('active')) {
        $('.item-link').attr('target', '_blank');
        } else {
        $('.item-link').removeAttr('target');
        }
        });
        });
    </script>

コードは正しいように見えますが、残念ながら機能せず、ボタンのアクティブ状態を検出していないのか、追加できないのか、現時点では不明です_blank。どんな助けでも大歓迎です=)

4

1 に答える 1

0

toggleClass() が何を返すかは正確にはわかりませんが、私のテストに基づくと、if else 条件に使用できるブール値が得られません..

hasClass()を試して、アクティブなクラスが既に設定されているかどうかを検出し、検出後に toggleClass を使用してみませんか。

ロジックが正しいかどうかはわかりませんが、投稿を再コーディングしてみました。

$(function () {
    $('#toolbar-display-newtab').click(function () {
        if ($(this).hasClass('active')) {
            $('.item-link').attr('target', '_blank');
        } else {
            $('.item-link').removeAttr('target');
        }
        $(this).toggleClass('active');
    });
});
于 2012-10-04T04:07:11.350 に答える