我不太确定怎么说这个......但是这里有:)
我的链接类似于:
<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可以做到这一点,但我找不到任何例子。
任何想法?
谢谢:)
答案 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运行。
关于还原,您需要使用标志来查看其状态,然后执行相应的还原。不确定你需要什么,所以这是我能给你的所有信息。