3

我有以下标记:

<div class="event-row-container">
    <div data-id="1" class="ios-location-name">Location Name</div>
    <div data-id="1" class="ios-location-detail" style="display: block;">
    700 S Grand Ave<br>
    Omaha<br>
    </div>
</div>

和以下 jQuery:

$('.ios-location-name').click(function(){
  var event_id=$(this).data('id');
  alert('you clicked event_id:' + event_id);
  $('.ios-location-detail').toggle();
});

适用于所有浏览器,但不适用于 iOS5.1(模拟器或设备)上的嵌入式 UIWebView。这应该工作吗?有什么我想念的吗?

谢谢

编辑 #1 那么是否有一个简单的方法可以让它工作?

4

2 回答 2

4

正如您已经阅读的那样,有几个问题可能是原因:

  1. UIWebView 本身不注册click事件
  2. 脚本在其 src/href 中不需要(并且显然不应该有)完整路径位置。

因此,对于第二个问题(在此处找到)尝试更改:

<script src="js/jquery-1.7.2.min.js"></script>

<script src="jquery-1.7.2.min.js"></script>

(显然文件名和路径需要调整,但底线是只引用没有完整基本路径的文件名)。

首先,您已经在:如何在 uiwebview 中实现触摸事件?

没用。您是否尝试过以下推荐的开源库之一:从 UIWebView 中的 javascript 向 ObjectiveC 发送通知

具体来说,PhoneGap 对我来说看起来很时髦,但显然,无论哪个解决问题都是最好的。

但是为什么它在 Safari 移动端而不是 UIWebView 中起作用的总体问题是因为事件没有被映射/交叉引用。

最后一个想法,只是说您尝试过...尝试将您的代码更改为:

$('.ios-location-name').on("click", function(){

以防万一它们在某处被映射,但该click方法本身并未映射到触摸事件(即使单击事件可能是)。值得一试。但我会尝试前两个想法,看看生活是否容易。

于 2012-05-03T19:19:03.900 回答
0

这是模拟器截图。它在这里工作。

在此处输入图像描述

于 2012-05-01T02:30:53.530 回答