如果用户点击其中任何一个,我需要单独更新2个图层。
<div id=wrapper>
<div id=upvote>
//This div can be filled by upvote.php?id=X
<? echo getUpVote(); ?>
<a href=#><img src=upv.png></a>
</div>
<div id=downvote>
//This div can be filled by downvote.php?id=X
<? echo getdownVote(); ?>
<a href=#><img src=downv.png></a>
</div>
</div>
当用户点击向上或向下投票图像时,我需要淡出div的内容,对相应的php文件进行ajax调用(获取请求),并淡入加载的内容。
我该怎么做?
答案 0 :(得分:0)
可以使用$.get进行AJAX请求,您可以使用jQuery的动画函数淡化DIV,例如fadeOut
以下是一些关于如何实现目标的代码:
$( '#IdOfOneAnchor' ).click ( function () {
var myDiv = $( '#IdOfYourDiv' );
myDiv.fadeOut ();
$.get (
'url/to/your/script.php',
{
// put params you need here
},
function ( response ) {
myDiv.html ( response ).fadeIn ();
}
);
return false;
} );
当然,您必须更改选择器以匹配您的DIV /链接...
答案 1 :(得分:0)
将单击处理程序附加到锚标记。给定包含div的id的url,然后调用load来替换包装器的内容。在适当的点淡出/淡出。确保从锚点击处理程序返回false以取消默认操作。
$('#upvote,#downvote').find('a').click( function() {
var url = $(this).closest('div').attr('id') + '.php?id=X';
$('#wrapper').fadeOut();
.load( url, function() {
$('#wrapper').fadeIn();
});
return false; // cancel click action
});
答案 2 :(得分:0)
要在jQuery中为元素添加单击处理程序,您可以执行以下操作:
$("#upvote").click(clickHandler);
clickHandler是一个函数。由于您想要淡出图像,您可以这样做:
$("#upimg").hide('slow');
会导致id ='upimg'的元素慢慢消失。您还可以使用fadeTo(不透明度)来实现类似的效果。
可以通过加载调用来进行AJAX调用。
$('#div').load('url', {}, callback);
其中带有id ='div'的元素将填充调用url的结果,{}是可选的,回调是一个可以包含在加载后执行的函数。回调函数可用于淡入新内容。
var clickHandler = function(){
$("#upimg").hide('slow');
$('#div').load('url', {}, callback);
}
var callback = function(){
$('#div').show('slow');
}