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. clickUIWebView はイベントをネイティブに登録しません
  2. スクリプトは、src/href にフル パスの場所を必要としません (また、そうすべきではないようです)。

したがって、2番目の問題(ここにあります)については、変更してみてください:

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

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

(明らかに、ファイル名とパスを調整する必要がありますが、最終的には、完全なベース パスなしでファイル名を参照するだけです)。

最初に、ソリューションが uiwebview でタッチ イベントを実装する方法を示していますか?

うまくいきませんでした。で推奨されているオープン ソース ライブラリの 1 つを試しましたか: UIWebView の javascript から ObjectiveC に通知を送信します。

具体的に言うと、PhoneGap は私にはかなりおしゃれに見えますが、問題を解決するものが最善であることは明らかです。

しかし、Safari モバイルでは機能するが UIWebView では機能しない理由に関する全体的な問題は、イベントがマップ/相互参照されていないためです。

最後にもう 1 つアイデアをお試しください。コードを次のいずれかに変更してみてください。

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

念のため、それらはどこかにマップされていますが、clickメソッド自体はタッチイベントにマップされていません(クリックイベントがマップされている場合でも)。試してみる価値。しかし、最初の 2 つのアイデアを試して、生活が楽になるかどうかを確認します。

于 2012-05-03T19:19:03.900 に答える
0

これがシミュレーターのスクリーンショットです。ここで働いています。

ここに画像の説明を入力

于 2012-05-01T02:30:53.530 に答える