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

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

问题描述:

我有一个使用jQuery的Ajax'like'按钮,该按钮将在页面上多次使用。我真的不想多次包含jQuery脚本,那么是否有办法让jQuery能够像页面上的所有按钮一样工作,但是会使用每个帖子中的唯一ID。这可能是一个noob问题,但那就是我。任何你可以提供的suutions将是伟大的。谢谢!制作多个ajax“like”按钮使用相同的jQuery脚本?

代码:

的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> 

你可以在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/

使用的一类和你一样是使用添加类的点击功能,你可以抓住的标识点击元素。

<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 

}); 
+0

id属性必须以字母开头,并在页面上独一无二的,仅供参考; http://reference.sitepoint.com/html/core-attributes/id - 也“this.id”将更容易地返回一个id;) – xec

+0

只要给它一个像“id12”的id,并将“id”关闭它使用substr:'$(this).attr('id')。substr(2);' – casraf