-1

別の要素の上に配置された要素があります。一番上の要素のクリック キャプチャを無視して、その下の要素に渡すにはどうすればよいですか?

$('a[title]').each(function (index) {
    $(this).after('&lt;div class="overlay" style="position:absolute;background:url(../Images/space.gif);width:100px;height:100px;top:0;left:0;z-index:300"></div>')
})

理由は、このコードがタイトル ツールチップのポップアップを妨げているためです。ホバー疑似クラスは、次のように両方を含む要素にアタッチされているため、その背後にあるリンクで引き続き機能します。

li:hover a { ... }
4

3 に答える 3

0

すべてのリンクに、同じid オーバーレイが上にある要素があるようです。

を削除し、透過ブロックにidを追加します。classdiv

次に、要素で必要なことを行うclickイベントをこれに追加します。classparent

于 2012-04-20T20:43:25.600 に答える
0

使用できるサンプル マークアップを投稿してください。通常、必要な要素にイベント ハンドラーをアタッチするだけですが、発生している問題が何であるかわかりません。

編集 私が正しく理解している場合、これはある種のツールチップであり、ユーザーにクリックイベントを渡してもらいたいと考えています。まず、ID は一意である必要があるため、ループ内で id="overlay" を使用することはできません。簡単な方法は、1.7 より前の jquery では .bind を、1.7 では on を使用してイベント ハンドラーを作成することです。

$('a[title]').each(function (index, el) {
      var $tooltip = $( '<div id="overlay-' + index  + '" />' ) 
                         //let JQuery create the CSS instead of using a style tag
                         .css({ position   : "absolute"
                              , background : "url(../Images/space.gif)"
                              , width   : 100
                              , height  : 100
                              , top     : 0
                              , left    : 0
                              , zIndex  : 300
                             })
                         //attach click handler to div
                         .on( 'click', function( e ){
                               $( el ).trigger( 'click' );
                            });
      $(this).after( $tooltip );
})
于 2012-04-20T19:24:00.923 に答える