2012-05-01 18 views
3

我有以下標記:如何使這個jQuery在UIWebView for iOS 5.1中工作?

<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(); 
}); 

工程上所有的瀏覽器而不是在一個嵌入式的UIWebView上iOS5.1(模擬器或裝置)。這應該工作嗎?有我缺少的東西嗎?

THX

編輯#1 那麼有沒有得到這個工作的EASY soln't?

+0

我試過在幾個IOS瀏覽器,包括iPhone模擬器,它似乎工作! – Jay

+0

哪個模擬器?我已經嘗試在iOS模擬器應用程序和設備上,而不是在任何工作。這是第一次在iOS設備上放置jQuery,所以非常非常新。 thx – timpone

+0

iPhone模擬器。即使我嘗試在我的iPhone和iPad上,它似乎工作。這裏是jsfiddle:http://jsfiddle.net/RHDqM/ – Jay

回答

4

正如您已經閱讀,也有可能是原因的幾個問題:

  1. 的UIWebView不註冊click事件本身
  2. 腳本不需要(顯然不應該有)在其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方法本身是不是映射到觸摸事件(即使點擊事件可能)。值得一試。但我會嘗試前兩個想法,看看生活是否容易。

+0

thx有關第一部分的信息 - 這看起來很時髦(至少可以說) – timpone

0

這裏是模擬器截圖。它在這裏工作。

enter image description here

+0

它是如何工作在Safari瀏覽器,但不在UIWebView。 :-(任何想法爲什麼這不會在UIWebView? – timpone

+0

如此驚人,它看起來像這不起作用:http://stackoverflow.com/questions/6260627/how-to-implement-touch-events- in-uiwebview – timpone

相關問題