如何在jQueryMobile中为Image绑定事件

时间:2011-01-07 16:01:53

标签: iphone ios-simulator jquery-mobile

我有一个运行jQuery Mobile 1.0a2的移动网站,我目前正通过iPhone模拟器在Mobile Safari for Firmware 4.1中进行测试。

我似乎无法绑定图片的加载事件。

我有一个简单的缩略图库和一个大图像。当您点击缩略图时,它会更改主src

img属性

js for the使用live('click'方法进行绑定,它的工作正常。

$('.gallery-navigation img').live('click',function() {
  // change source of main image to new
  $.mobile.pageLoading(); // show jquerymobile loading message
});

我的问题是我需要对此次点击进行反馈,因此我想显示加载消息(由jquerymobile提供),然后在图片加载后隐藏它。

#gallery_image_large<img>正在变化的实际src,我尝试了以下内容:

$("#gallery_image_large").bind("load", function () {
   $.mobile.pageLoading(true); // hide jquerymobile loading message
});

这适用于我桌面上的Safari,但不适用于上面提到的iPhone模拟器。

供参考:

更新:我正在试验JQuery Image load fails on MobiOne iPhone simulator,其中解释了如何通过“检查.load”手动实施.complete

1 个答案:

答案 0 :(得分:1)

我改变了jquery的结构,它似乎修复了它!

$('#gallery_image_large').one('load',function() {
    try { // a grade  
        $.mobile.pageLoading(true);
    } catch(err) { // low grade

    }
}).attr('src',full_src);

(如您所见,我选择try { .. } catch { .. }来验证jquerymobile是否可用。

虽然我没有使用JQuery Image load fails on MobiOne iPhone simulator中的解决方案(直接),但是通过load手动触发.complete可能是其他任何人的好解决方案!