2

次のようにmootoolsでクリックイベントを作成しています:

$$('body').addEvent('click:relay(div.smart-bg)', function(){

xxxxxxxxxxx

});

ただし、これは iPad では発生しないようです (他のクリック イベントは発生します)。これは、追加された動的要素であり、:relay を使用しているという事実と関係がありますか?

どんなポインタでも大歓迎です。

広告。

4

1 に答える 1

2

に委任されたクリック イベントを追加したときに、同様の問題が発生しましたdiv

quirksmode のこの記事が役立つ場合があります。

この行動には理由があるはずです。その理由はわかりませんが、現時点ではメモリ管理の問題だと思います。どうやら、ページ上のすべての要素をクリック可能にすると、あまりにも多くのリソースが必要になるため、Apple のエンジニアはそれを無効にすることにしました。

と...

幸いなことに、これを解決するのは非常に簡単です。独自の onclick イベント ハンドラを指定して、要素をクリック可能にする必要があります。そのハンドラは空にすることができます。存在する限り、すべての要素をクリック可能にします。

おそらくあなたの場合...

$$('.smart-bg').each(function(el) {
    el.onclick = function() {};
});

もちろん、委任されたイベントであるため、.smart-bg動的に作成する各要素で onclick ハンドラーを必ず再作成する必要があります。

于 2012-08-31T17:20:56.633 に答える