2012-04-20 3 views
-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>') 
}) 

이유는이 코드가 제목 설명이 팝업되지 못하기 때문입니다.

리 :이 요소에 부착되어 있기 때문에 호버 사이비 수준은 여전히 ​​같은, 둘 다 포함 뒤에 링크를 작동 가져 {...}

------- 솔루션 ----------

$('a[title]').each(function (index, el) { 
    var $tooltip = $('<div class="overlay-' + index + '" />') 
         .css({ 
          position: "absolute" 
          , background: "url('../Images/space.gif')" 
          , width: $(el).width() 
          , height: $(el).height() 
          , top: 0 
          , left: 0 
          , zIndex: 300 
          , border: "1px solid red" 
         }) 
         .on('click', function (event) { 
          $(el).click(); 
         }); 
    $(this).after($tooltip); 
}) 
+1

귀하의 모든 링크가 동일한 'id' * 오버레이 *를 가진 요소를 가지고있는 것처럼 보입니다 ... – RASG

+0

고마워요. – Dathan

답변

0

우리가 작업 할 수있는 샘플 마크 업을 게시하시기 바랍니다. 일반적으로 원하는 요소에 이벤트 핸들러를 연결하면 발생한 문제를 이해하지 못합니다.

편집 올바르게 이해하면 이것은 일종의 툴팁이며 사용자가 click 이벤트를 전달하기를 원합니다. id는 고유해야하기 때문에 처음에는 루프에서 id = "overlay"를 사용할 수 없습니다. 간단한 방법은, 또는 모든 링크가 그 위에 같은 id오버레이 인 요소를 가지고있는 것처럼 1.7

$('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); 
}) 
+0

k, 업데이트했습니다. – Dathan

+0

음 ... 죄송 합니다만, 나는 아직도 당신이하려는 일을하려는 이유를 해결할 수 없습니다. 당신은 링크를 잔뜩 가지고 있으며 각각의 뒤에 빈 HTML 문자열을 첨부하고 있습니까? 그것은 말이되지 않습니다. – gotofritz

+0

죄송합니다. 코드가 올바르게 표시되지 않았다는 것을 인식하지 못했습니다. 제목 속성이있는 링크 위에 투명 블록을 넣습니다. – Dathan

0

보이는 동안 전 1.7에 대한 jQuery .bind 사용하여 이벤트 핸들러를 작성하는 것입니다.

id을 삭제하고 투명 블록 divclass을 추가하십시오.

요소를 사용하여 classclick 이벤트를 추가하십시오.

+0

사실 내가 타겟팅하는 것은 부모 요소가 아닙니다. 그것은 그것 위에 div와의 링크입니다. 클릭 이벤트가 링크를 트리거하기 위해 div를 통과하기를 원합니다. – Dathan