使用ajax和jquery

时间:2016-06-22 17:05:23

标签: javascript jquery ajax

当用户点击.play时,如果它没有播放类,则应该添加一个播放计数然后添加类.alreadyplayed我是AJAX的新手并且似乎无法使其工作。

$(".play").on('click', function () { 
if (!$(this).hasClass('alreadyplayed')) {
    $.ajax({
    type:'post',
    url:'addplay.php',
    data: songid = $(this).attr('sound_id'),
    }).done {
    $(this).addClass('alreadyplayed');
    }
}); 

2 个答案:

答案 0 :(得分:2)

似乎问题出在data: songid = $(this).attr('sound_id'),& done功能

您必须将其作为对象传递

data: { songid : $(this).attr('sound_id')} // Note curly braces

.done是一个回调函数

.done(function(response){
 //rest of code
}

您可以尝试使用此代码段

 $(".play").on('click', function (event) { 
if (!$(this).hasClass('alreadyplayed')) {
    $.ajax({
    type:'post',
    url:'addplay.php',
    data: {songid = $(this).attr('sound_id')},
    }).done(function(response){ //End of ajax & start of done
        $(this).addClass('alreadyplayed');
       }) // end of done
    } // end of if loop
}); // end of click

答案 1 :(得分:0)

我让它以这种方式工作,最终当我弄清楚时,我将使它发布数据v.s. ?songid = get方法我会补充说,只是有人知道addplay页面无法使播放助推器变得简单,但现在它的效果很好。

 $(".play").on('click', function () { 
    var soundid = $(this).attr('soundid');
    var thisplay = $(this);
        if (!$(this).hasClass('alreadyplayed')) {
                $.ajax({
                type:'post',
                data: $(this),
                url:'addplay.php?songid=' + soundid,        
                   });   
            }
            thisplay.addClass('alreadyplayed');
});