ここで間違っている人はいますか? console.logでは750または2000のいずれかを返しますが、私の状況ではアイコンを見つけてアイコンクラスを追加していないようです。これ以上クリックされた要素を参照するの成功コールバックの内側jQuery this find selector does not working
JS
$("a.image-select").click(function(){
$('.loading').show();
selectedImage = $(this).data('image');
$("a.image-select").removeClass('selected');
$(this).addClass('selected');
$('.image-warning').hide();
$(".image-original").attr('src', "imgd.php?src="+selectedImage+"&quality=100&w=500&h=500&cf");
$(".image-optimised").attr('src', "imgd.php?src="+selectedImage+"&quality=100&w=500&h=500&cf");
$.ajax({
url: "imgd.php?src="+selectedImage+"&quality=100&json",
dataType: "json"
}).success(function(data){
$('.image-details-quality').html('100');
var sizeInMB = (JSON.stringify(data['size'])/(1024*1024)).toFixed(2);
var sizeInKB = (JSON.stringify(data['size'])/1024).toFixed(2);
$('.image-details-size').html(sizeInMB + 'mb' + '/' + sizeInKB + 'kb');
$('.image-details-dims').html(data['width'] + 'px' + ' x ' + data['height'] + 'px');
$('.image-details-type').html(data['mimeType']);
// if image is more than 2000 show error
if(data['width'] > 2000){
$('.image-warning').show();
}
// set thumbnail icons
if(data['width'] == 2000){
$(this).find('span.device-icon').addClass('glyphicon-phone');
} else if(data['width'] == 750) {
$(this).find('span.device-icon').addClass('glyphicon-blackboard');
}
console.log(data['width']);
$('#slider').slider('refresh');
$('.image-details').show();
$('.loading').hide();
});
});
この部分問題の
// set thumbnail icons
if(data['width'] == 2000){
$(this).find('span.device-icon').addClass('glyphicon-phone');
} else if(data['width'] == 750) {
$(this).find('span.device-icon').addClass('glyphicon-blackboard');
}
HTML例
<a href="#" data-image="LUXE-ESSENTIALS-MOB.jpg" class="image-select selected">
<span class="select-icon glyphicon glyphicon-ok-circle"></span>
<img src="imgd.php?src=LUXE-ESSENTIALS-MOB.jpg&quality=100&width=80&height=80&crop-to-fit" data-pin-nopin="true">
<span class="device-icon glyphicon"></span>
</a>
コールバックの中で、これはAjax呼び出しのjqXHRオブジェクトを参照し、イベントハンドラがバインドされた要素を参照しません。http://stackoverflow.com/questions/6394812/this-inside-of-ajax-success-not –