如何使这个 jquery 在 iOS 5.1 的 UIWebView 中工作?

Posted

技术标签:

【中文标题】如何使这个 jquery 在 iOS 5.1 的 UIWebView 中工作?【英文标题】:how to make this jquery work in the UIWebView for iOS 5.1? 【发布时间】:2012-05-01 01:25:29 【问题描述】:

我有以下标记:

<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 那么有没有一种简单的方法可以让它发挥作用?

【问题讨论】:

我已经在包括 iPhone 模拟器在内的几个 IOS 浏览器中尝试过,它似乎可以工作!!!! 哪些模拟器?我已经在 iOS Simulator 应用程序和设备上尝试过,但都没有工作。这是第一次将 jQuery 放在 iOS 设备上,所以非常非常新。谢谢 iPhone 模拟器。即使我在我的 iPhone 和 iPad 上尝试过,它似乎也能正常工作。这是jsfiddle:jsfiddle.net/RHDqM 它在提醒您吗?我什么也得不到。我隐藏了 ios-location-detail 并且应该打开它。我有 5.1 的 3GS。 是的,它首先提醒我,然后切换 div。我的 iphone 是 4GS,我的模拟器版本是 4.1 (225),我有第一代 iPad。顺便说一句,我刚刚在我妻子的 3Gs iphone 上试过,它可以在 3Gs 和 4GS 下工作。 【参考方案1】:

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

    UIWebView 未原生注册 click 事件 脚本不需要(显然也不应该)在其 src/href 中包含完整路径位置。

所以对于第二个问题(找到here)尝试更改:

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

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

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

首先,您已经在How to implement touch events in uiwebview?处指出了解决方案

没用。您是否尝试过以下推荐的开源库之一:send a notification from javascript in UIWebView to ObjectiveC

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

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

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

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

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

【讨论】:

感谢有关第一部分的信息 - 这似乎很时髦(至少可以说)【参考方案2】:

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

【讨论】:

所以它适用于 safari 但不适用于 UIWebView。 :-( 知道为什么这不适用于 UIWebView 吗? 太神奇了,看起来这不起作用:***.com/questions/6260627/…

以上是关于如何使这个 jquery 在 iOS 5.1 的 UIWebView 中工作?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用内部 html 和引导程序使这个简单的 jQuery 弹出模式在页面加载时显示

Socket IO Node Js 和 PHP,如何使其工作?

如何使导航栏从透明变为实心引导程序 5.1

如何使 Rails 3.1 在 Debian 挤压上与 MySQL Server 5.1 一起工作?

jquery如何使css设定好背景颜色的div去掉背景颜色?

如何使jquery“$ .post”请求同步[重复]