在后台运行选定的链接,更新链接的URL和图标


run selected link in background, update url and icon of link?

我不太确定如何措辞......但这里有:)

我有类似于以下链接:

<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

如果他们认为点击相同的链接,我想将所有这些恢复到原来的样子。有效地使每个链接成为前进/停止切换!

我似乎认为jquery可以做到这一点,但我找不到任何例子。

有人有什么想法吗?

谢谢:)

假设您加载了 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');
                }
            });
        }
    });
});

附言这是一个粗略的示例,可帮助您入门。干杯!

据我所知 - 你想要的是不可能的。更改 URL 会刷新页面,因此您的 ajax 将在短时间内丢失。

不过,您可以使用锚点(例如,如果您在go.php上,您可以将 url 更改为 go.php#go4a ,并且通过正确的编码,您将能够使页面像 AJAX 运行一样工作。

关于还原,

您需要使用标志来查看其状态,然后执行适当的还原。不确定你需要什么,所以这是我能给你的所有信息。