1

これは私がDOMを構築する方法です:

var projectOverlay = document.createElement("div");
projectOverlay.className = "projectOverlay";
projectOverlay.onclick = function(){openSlider($(this))};   
project.appendChild(projectOverlay);

そのため...openslider(elem)機能は、モバイルデバイス(Androidフォン、iPhone、iPadなど)を除くすべてのブラウザーで完全に機能します。イベントをまだ作成された要素にバインドする他の方法はありますか、それともここで何か間違っていますか?

実際の例- 連絡先をクリックしてプロジェクトを取得し、プロジェクトの 1 つをクリックして展開してみてください。[About] をクリックすると、ホームページに戻ります。それはまだ厄介ですが、Web サイトはまだ開発の初期段階にあります...

4

3 に答える 3

0

私のプロジェクトで同じ問題が発生しました。動的に作成された要素は、iOS6 を除いてクリック イベントを取得していませんでした (そのため、そこで何かが修正された可能性があります)。私が見つけた回避策は、動的に作成された要素を含む div を強制的に変換することです。動的に作成された要素を含む div は、ページが読み込まれたときに存在していました。値が「container」の id 属性があると仮定すると、コードは次のようになります。

var container = document.getElementById("container");
container.style.webkitTransitionDuration = "0";
container.style.webkitTransform = "translateY(0px)";

次に、コンテナの下に動的に作成された要素がクリック イベントを取得していました。

于 2012-12-02T21:27:54.137 に答える
0

appendChild の後にクリック イベント バインディングを移動してみてください

于 2013-06-04T08:09:34.700 に答える
0

一部の携帯電話やブラウザでは、JavaScript で「onclick」イベントが実装されていません。「touchstart」、「touchmove」、「touchend」など、よりタッチに適したイベントを使用する必要があります。

詳細はこちら: https://developer.mozilla.org/en-US/docs/DOM/Touch_events

于 2012-11-23T15:00:35.857 に答える