2012-01-11 6 views
0

私はsvgイメージをhtmlファイルの要素に埋め込んでいます。ユーザーがオブジェクト/イメージをクリックすると、イメージを拡大するクリックイベントが発生します。私は機能しているが、私はクリックイベントをキャッチするオブジェクト要素を取得することはできません。これが動作する唯一の時間は、オブジェクトをラップする別の要素がある場合です。画像キャプション等が含まれる。私がイベントをそこに置くと、キャプションの付いた周辺領域がクリック可能になります。しかし、すべての画像にこのような領域があるわけではありません。また、クリックする必要がある場所を知ることが難しくなるため、それはまだ迷惑です。オブジェクト要素がjQueryイベントをキャッチしませんか?

私の質問:どのようにjQueryコードを実行するためにオブジェクト要素をクリック可能にすることができますか?

答えて

0

jQueryのイベントシステムでは、DOM要素が要素のプロパティを介してデータを添付できるようにする必要があり、イベントを追跡して配信することができます。 object、embed、およびapplet要素はデータを添付できないため、jQueryイベントをバインドすることはできません。

http://api.jquery.com/on/

+0

[OK]をクリックします。あなたが提供したリンクは、その答えでしょうか?それは回避策を示唆していますか?すごく分かりませんでした。回避策であれば、どのように使用するのかを例に挙げてください。 – Anders

+0

はい、私はあなたの問題を理解していると仮定します。答えの短いバージョンは「できません」で、おそらく回避策をとらなければならないでしょう。オブジェクト要素を他の要素で囲むことは、自分自身を言及したように、それを行う1つの方法です。 – bububaba

+0

権利。さて、リンクが回避策ではなく、むしろ問題の説明であったことに気付きました。そして、それはいくつかのパディングや何かでうまくいくかもしれませんが、ユーザーはイメージの外でクリックする必要があります...私は実際のイメージをクリックするための回避策を望みます。私はそれの上にクリック可能な何かのレイヤーとして置くことができるもの(不可視)はありませんか? – Anders

-1

私はこのjQueryの機能/制限を回避働いてきた方法は、要素のイベントのためのjQueryを使用しないことです。たとえば、次のような作品:ページがロードした後

var ajqueryobject = $('object'); 
ajqueryobject[0].addEventListener('load', function(ev){/*content*/}) ; 
関連する問題