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

标签 php javascript jquery ajax jquery-ui

我有一个使用 jQuery 的 Ajax“喜欢”按钮,该按钮将在页面上多次使用。我真的不想多次包含 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>

最佳答案

您可以将 id 存储在包含元素上,并通过每次单击获取该 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/

关于php - 使多个ajax 'like' 按钮使用相同的jQuery 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7139277/

相关文章:

jquery - 数组内容不显示

javascript - 尝试使用 javaScript setInterval 来替代内容,但它不起作用

php - 在给定位置(重新)开始时,如何正确计算 ProgressBar 中的 ETA?

php - 弃用 : Function session_register() is deprecated and Cannot modify header information

javascript - HTML5 Canvas 意外的移动量

javascript - 克隆/复制 DOM 元素功能无法正常工作

php - Zend_Registry : real life examples

php - 在 php 文件中存储重要的 key

javascript - 根据数据属性如何隐藏标签并显示在另一个 div 中

javascript - 如何通过ajax发送2个选择框动态生成的值以获取第3个选择框值