以下は(明らかに)より大きなプロジェクトの一部であり、Chrome、Firefox、および Opera で正常に動作していますが、.click() 関数は IE9 または 10 によって呼び出されていません。
jQuery('.current img').hover(function() {
var thisElem = jQuery(this);
thisElem.parent().parent().find('.hotspot span:not(.select-image)').remove();
thisElem.parent().parent().find('.hotspot img').parent().find('span.select-image').remove();
jQuery('<span class="zoom-out"></span>').prependTo(thisElem.parent()).click(function() {
z -= .1;
z = Math.max(z, 1);
jQuery(this).parent().find('img').attr('src', '<?php echo $urlPrefix; ?>/zcard-thumbnail-image/photos/<?php echo $modelId; ?>/low/' + i + '/' + (w * z) + '/' + (h * z) + '/file');
});
jQuery('<span class="select-image"></span>').prependTo(thisElem.parent());
jQuery('<span class="zoom-in"></span>').prependTo(thisElem.parent()).click(function() {
z += .1;
z = Math.min(z, 5);
jQuery(this).parent().find('img').attr('src', '<?php echo $urlPrefix; ?>/zcard-thumbnail-image/photos/<?php echo $modelId; ?>/low/' + i + '/' + (w * z) + '/' + (h * z) + '/file');
});
});
私が知る限り、要素がまだ存在しないため、 .click() はバインドされていません。代わりに jQuery(target).prepend(element) を使用し、それ以上の実行を遅らせるアラートを使用し、次に .click() バインドすると、すべて正常に動作します。残念ながら、アラートを delay() に置き換えても、同じ結果にはなりません。
誰か提案がありますか?