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

时间:2013-01-28 08:59:01

标签: php jquery url icons toggle

我不太确定怎么说这个......但是这里有:)

我的链接类似于:

<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,同时将此链接的网址更改为go.php?stop=4a }。

如果他们认为点击相同的链接,我想将所有这些恢复到原来的状态。 有效地使每个链接成为一个go / stop切换!

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

任何想法?

谢谢:)

2 个答案:

答案 0 :(得分:1)

如果你已经加载了jQuery,并且你有一个容器x作为你的页面内容,你可以使用$.ajax将动态内容加载到容器并让它加载/停止,如: / p>

$(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');
                }
            });
        }
    });
});

P.S。这是一个粗略的例子,可以帮助您入门。干杯!

答案 1 :(得分:0)

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

您可以使用锚点(例如,如果您使用的是go.php,则可以将网址更改为go.php#go4a,并使用正确的编码,您可以将网页设置为如果AJAX运行。

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