制作多个ajax'like'按钮使用相同的jQuery脚本?

时间:2011-08-21 15:44:52

标签: php javascript jquery ajax jquery-ui

我有一个使用jQuery的Ajax'like'按钮,这个按钮将在页面上多次使用。我真的不想多次包含jQuery脚本,所以有没有办法让jQuery适用于页面上的所有按钮,但是使用每个帖子中的唯一ID。这可能是一个菜鸟问题,但那就是我。你能提供的任何水泡都会很棒。谢谢!

代码:

jQuery的:

<script type="text/javascript">
$(function() {
$(".like").click(function(){
$("#loading").html('<img src="loader.gif" align="absmiddle">&nbsp;loading...');

 $.ajax({
   type: "POST",
   url: "like.php?id=<?php $row['uid']; ?>", // UNIQUE ID, EVERY POST WILL HAVE ONE
   success: function(){
$("#loading").ajaxComplete(function(){}).slideUp();
$('#like'+I).fadeOut(200).hide();
$('#remove'+I).fadeIn(200).show();
}
});
return false;

});

});
</script>

<script type="text/javascript">
$(function() {
$(".remove").click(function(){
$("#loading").html('<img src="loader.gif" align="absmiddle">&nbsp;loading...');

 $.ajax({
   type: "POST",
   url: "remove.php?id=<?php $row['uid']; ?>", /// UNIQUE ID, EVERY POST WILL HAVE ONE
   success: function(){
$("#loading").ajaxComplete(function(){}).slideUp();
$('#remove'+I).fadeOut(200).hide();
$('#like'+I).fadeIn(200).show();
}
});
return false;

});

});
</script>

HTML:

<div id="follow1"><a href="#" class="follow" id="1">

<span style="font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; font-weight: bold; color:#7391AC; text-align:left; font-size:20px; text-align:left;">&nbsp;<strong>like</strong>
</span></a>
</div>

<div id="remove1" style="display:none"><a href="#" class="remove" id="1">

<span class="remove_b" style="font-family: 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; font-weight: bold; color:#7391AC; text-align:left; font-size:20px; text-align:left;">unlike
</span></a>
</div>

2 个答案:

答案 0 :(得分:2)

你可以将id存储在一个包含的元素上,并且每次点击都会得到它,就像这样;

<强> HTML

<div class="box" data-id="1">
    <a href="#" class="like">like</a>
    <a href="#" class="remove">remove</a>
    <!--etc-->
</div>

<强>的javascript

$(function() {
    $(".like, .remove").click(function(e) {

        var id = $(this).closest('.box').data('id');
        var url = $(this).attr('class') + ".php?id=" + id;
        // a click on like will generate a url: like.php?id=1

    });
});

演示http://jsfiddle.net/6Vrvv/

答案 1 :(得分:1)

使用类并使用类似的类添加您的单击函数,您可以获取所单击元素的ID。

<a href="#" id="1" class="likeMe">Like 1</a>

<a href="#" id="2" class="likeMe">Like 2</a>

可以定位为:

$('.likeMe').click(function(){

  alert($(this).attr('id'));  //call your ajax stuff here with the correct id

});