我不太确定如何措辞......但这里有:)
我有类似于以下链接:
<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 运行一样工作。
您需要使用标志来查看其状态,然后执行适当的还原。不确定你需要什么,所以这是我能给你的所有信息。