Заставить множественную кнопку «Мне нравится» в ajax использовать один и тот же скрипт jQuery? - PullRequest
0 голосов
/ 21 августа 2011

У меня есть кнопка «Мне нравится» Ajax, которая использует jQuery, эта кнопка будет использоваться на странице несколько раз.Я на самом деле не хочу включать скрипт jQuery несколько раз, поэтому есть способ заставить 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>

Ответы [ 2 ]

2 голосов
/ 21 августа 2011

вы можете сохранить идентификатор для содержащего элемента и получать его при каждом нажатии, например, так:

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 голос
/ 21 августа 2011

Используйте класс и добавьте функцию щелчка, используя класс таким, какой вы есть, и вы можете получить идентификатор элемента, по которому щелкнули.

<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

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...