私の画像ギャラリーには、次のリンクと前のリンクがあります。どちらかをクリックすると#the_image divに画像が読み込まれますが、毎回画像のサイズを変更する必要があります。私の考えでは、.loadのコールバック関数としてイメージのサイズを変更するコードを記述します。しかし、それは毎回機能しません。奇妙なことにも、私がの後にalert("blah");
を置くと、イメージは毎回正確に配置されます。何か案は?.loadコールバック関数が動作することがありますか?
<script type="text/javascript">
$(document).ready(function() {
$('#previous').live('click', function(e){
$('#img_wrapper').load($(this).attr('href') + ' #container',function() {
var height = $(window).height();
var width = $(document).width();
var image = $('#the_image');
$("#the_image").css("max-height",height-200);
image.css({
'max-height': height-200,
'left': width/2 - (image.width() /2)-5,
'top': height/2 -(image.height() /2),
});
prev = $('#previous'); next = $('#next');
prev.css({
'left': 0,
'top': (height/2)-150,
});
next.css({
'left': 924,
'top': (height/2)-150,
});
});
e.preventDefault();
});
});
</script>
これはどのような作品です:
は、ここに私のJSです。ジャスパーのおかげで、彼のコードビットを変更する必要がありました:
$(function() {
$(document).delegate('#next', 'click', function (e) {
$('#img_wrapper').load($(this).attr('href') + ' #container',function() {
var height = $(window).height(),
width = $(document).width();
$("#the_image").bind('load', function() {
var image = $('#the_image');
$("#the_image").css("max-height",height-200);
image.css({
'max-height': height-200,
'left': width/2 - (image.width() /2)-5,
'top': height/2 -(image.height() /2),
});
});
$('#previous').css({
'left' : 0,
'top' : ((height/2) - 150),
});
$('#next').css({
'left' : 924,
'top' : ((height/2) - 150),
});
});
e.preventDefault();
});
});
あなたの提案を試みましたが、画像が正しく配置されていません。 – DanielOlivasJr
問題のページへのリンクを投稿して、その動作を確認できますか? – Jasper
OKクール。それは働いて、少し助けを借りて、数学を解決しなければならなかった! – DanielOlivasJr