1

私はこれをどのように表現するかよくわかりません..しかしここに行きます:)

私は次のようなリンクを持っています:

<a href='#' class='tip' id='4a' onclick=\"load('go.php?go=4a');\"><img src='go.png'></a>
<a href='#' class='tip' id='6a' onclick=\"load('go.php?go=6a');\"><img src='go.png'></a>
<a href='#' class='tip' id='8a' onclick=\"load('go.php?go=8a');\"><img src='go.png'></a>

誰かが最初のリンクをクリックするgo.php?go=4aと、バックグラウンドで実行し、リンクのアイコンをにstop.png変更しますが、このリンクのURLもに変更しますgo.php?stop=4a

彼らが同じリンクをクリックすると思うなら、私はこれをすべて元に戻したいと思います。効果的に各リンクをgo/stopトグルにします!

jqueryでこれができると思うのですが、例が見つかりません。

誰かアイデアはありますか?

ありがとう :)

4

2 に答える 2

1

jQueryがロードされてxいて、ページコンテンツとして機能するコンテナーがある場合は、次のよう$.ajaxに動的コンテンツをコンテナーにロードしてロード/停止することができます。

$(function () {
    $('a.tip').on(' click', function () {
        var $this = $(this),
            container = $('#x'),
            prevHTML = container.html(),
            req = {};
        if ($this.hasClass('go')) {
            req.abort();
            container.html(prevHTML);
            $this.find('img').attr('src', 'go.png');
            $this.removeClass('go');
        } else {
            $this.find('img').attr('src', 'stop.png')
                .end().addClass('go');
            req = $.ajax({
                url: 'go.php?go=' + $this.attr('id'),
                type: 'get',
                success: function (data) {
                    container.html(data);
                    $this.removeClass('go');
                }
            });
        }
    });
});

psこれはあなたが始めるための大まかな例です。乾杯!

于 2013-01-28T09:17:43.273 に答える
0

私の知る限り、あなたが望むことは不可能です。URLを変更するとページが更新されるため、時間の経過とともにajaxが失われます。

ただし、アンカーを使用することはできます(たとえば、を使用している場合はgo.php、URLをgo.php#go4aに変更できます。適切なコーディングを行うと、AJAXが実行されたかのようにページを機能させることができます。

復帰については、フラグを使用してその状態を確認してから、適切な復帰を行う必要があります。何が必要かわからないので、これが私があなたに与えることができるすべての情報です。

于 2013-01-28T09:14:30.033 に答える