私はjQueryの初心者なので、これに対する答えは非常に簡単かもしれません:
イメージがあり、それを使っていくつかのことをしたいと考えています。ユーザーが「ズーム」アイコンをクリックすると、「imagetool」プラグイン ( http://code.google.com/p/jquery-imagetool/ ) を実行して、より大きなバージョンの画像を読み込みます。プラグインは、画像の周りに新しい div を作成し、ユーザーがパンできるようにします。
ユーザーが別の画像をクリックすると、古い画像が削除され、新しい画像が読み込まれます。
問題は、ユーザーが別の画像をクリックしてからズーム ボタンをクリックしたときに発生します。imagetool プラグインは新しい div を作成しますが、その後に画像が表示されます...
コードは次のとおりです。
// Product Zoom (jQuery)
$(document).ready(function(){
$("#productZoom").click(function() {
// Set new image src
var imageSrc = $("#productZoom").attr("href");
$("#productImage").attr('src', imageSrc);
// Run the imagetool plugin on the image
$(function() {
$("#productImage").imagetool({
viewportWidth: 300,
viewportHeight: 300,
topX: 150,
topY: 150,
bottomX: 450,
bottomY: 450
});
});
return false;
});
});
// Alternative product photos (jQuery)
$(document).ready(function(){
$(".altPhoto").click(function() {
$('#productImageDiv div.viewport').remove();
$('#productImage').remove();
// Set new image src
var altImageSrc = $(this).attr("href");
$("#productZoom").attr('href', altImageSrc);
var img = new Image();
$(img).load(function () {
$(this).hide();
$('#productImageDiv').append(this);
$(this).fadeIn();
}).error(function () {
// notify the user that the image could not be loaded
}).attr({
src: altImageSrc,
id: "productImage"
});
return false;
});
});
imagetool プラグインは、新しいイメージに置き換えられると #productImage イメージを表示できなくなるように思えます...だから、これはバインディングと関係があると思いますか? ページがロードされた後に新しい画像が dom に追加されるため、iamgetool プラグインはそれを正しく使用できなくなります...これは正しいですか? もしそうなら、それに対処する方法はありますか?