[Solved] jQuery methods on dynamic elements


You need to save $(this) after function()

$(document).on("click",".PlayPause",function(){

            var $this = $(this); //////Save this here//////

            if($(this).attr('src') == 'img/Play.png'){
                $(this).attr('src','img/Pause.png');
                var songId = $(this).parent().siblings('.Top_Container').children('input').val();
                $.post('songs.php',{songId : songId}, function(path){
                 //////////Use $this instead of $(this) inside here///////////
                    if(globalSong.playState && !($(this).hasClass('prevSelection'))){//$this
                        $('.prevSelection').attr('src','img/Play.png');
                        globalSong.pause();
                        $('.prevSelection').removeClass('prevSelection');
                    }
                    globalSong = soundManager.createSound({
                        id: ("sound" + songId),
                        url: (songsPath + path),
                        volume: userPrefVolume
                    });
                    globalSong.play();
                    $(this).addClass('prevSelection'); //$this
                });
            } else {
                $(this).attr('src','img/Play.png');
                globalSong.pause();
            }
        });

Use $this instead of $(this) inside the $.post() function

solved jQuery methods on dynamic elements