2014-03-26 1 views
0

많은 셀이있는 큰 테이블이 있으며이 셀 중 일부에는 div이 있습니다.TD 내부의 DIV - 두 가지 모두 qTip입니다. DIV를 클릭 할 때 두 qtips가 표시됩니다.

사용자가 셀을 직접 클릭하면 div을 클릭 할 때보 다 다른 q 팁이 표시됩니다.

$('#table').on('click', 'td', function(event){ click_td(event); });  

function click_td(e) { 

     if ($(e.target).hasClass('div')) 
     { 
      var content = tip1_conent(e); 

      $(e.target).qtip({ 
       overwrite: false, 
       content: {text: content}, 
       show: { 
        solo: true, 
        event: 'click', 
        ready: true 
       }, 
       hide: { 
        fixed: true, 
        inactive: 3000 
       } 
      }, e); 
     } 
     else 
     { 
      var td = (e.target.localName=='td')?$(e.target):$(e.target).parents('td');    
      var content = tip2_conent(e); 

      $(e.target).qtip({ 
       overwrite: false, 
       content: {text: content}, 
       show: { 
        solo: true, 
        event: 'click', 
        ready: true 
       }, 
       hide: { 
        fixed: true, 
        inactive: 3000 
       } 
      }, e); 
     } 
} 

문제 :

내 코드입니다 내가이 코드를 사용하고

  1. - (클릭 일련의 후 즉, DIV, 다음 TD, 다음 DIV한다.) 동시에 두 qtips가 표시됩니다.

  2. 내가 숨기기 이벤트에 툴팁 파괴하는 경우 :

    이벤트 : { 숨기기 : 기능() { $ (이) .qtip을 (사실 '파괴');

    • 형식 오류 : 내가 jquery.min에서 FF의 콘솔에서 erors을 많이 받게됩니다

} } this.options가 null

  • 형식 오류입니다 : O null입니다

  • hun으로 처리하는 가장 효과적인 방법은 무엇입니까? 페이지에 요소를 dreds?

    UPD_1 : http://jsfiddle.net/EcStud/Gfkg4/ -이 jsfiddle 버전입니다

    +0

    당신은 아마 당신이 무슨 뜻인지 해독하는 데 도움이 될 것 같은 문제의 jsfiddle.net 버전을 생성 할 수 있습니다하세요? 예를 들어,'div' 요소 인'DIV' 클래스를 테스트하는 이유는 무엇입니까? 그것은 이해가되지 않지만 아마 당신의 HTML은 진짜'div' 클래스로 마크 업되어 있습니까? –

    +0

    귀하의 질문은 매우 광범위합니다. 한 번에 하나의 툴팁 만 표시되도록 하시겠습니까? 공연 솔루션을 원하십니까? 도구 설명이 표시된 후에이를 삭제해야합니까? 명확히하십시오. – thomaux

    +0

    http://jsfiddle.net/EcStud/Gfkg4/ - 이것은 jsfiddle 버전 – EcStud

    답변

    0

    var에 oQtip;

    $ ('# table'). ('click', 'td', function (event) {click_td (event);});

    기능 click_td (E) {

    if(oQtip) 
        { 
          if(oQtip.is(':visible')) 
          { 
           oQtip.hide(); 
          } 
        } 
        if ($(e.target).hasClass('div')) 
        { 
         var content = tip1_conent(e); 
    
         oQtip = $(e.target).qtip({ 
          overwrite: false, 
          content: {text: content}, 
          show: { 
           solo: true, 
           event: 'click', 
           ready: true 
          }, 
          hide: { 
           fixed: true, 
           inactive: 3000 
          } 
         }, e); 
        } 
        else 
        { 
         var td = (e.target.localName=='td')?$(e.target):$(e.target).parents('td');    
         var content = tip2_conent(e); 
    
         oQtip = $(e.target).qtip({ 
          overwrite: false, 
          content: {text: content}, 
          show: { 
           solo: true, 
           event: 'click', 
           ready: true 
          }, 
          hide: { 
           fixed: true, 
           inactive: 3000 
          } 
         }, e); 
        } 
    

    }

    +0

    예! 좋은 해결책입니다. – EcStud

    관련 문제