2010-12-22 1 views
2
here is my case: 

    <html> 
    <body> 
    <head> 
    ... 
    <script> 
$(function(){ 
     $('.do-tip').qtip({ 
      content: 'This is a tip of active hovered element', 
      show: 'mouseover', 
      hide: 'mouseout', 
    }) 
}); 
    </script> 
    </head> 
    <body> 
    <a href="http://www.google.com" class="do-tip">google</a> 

    <input type="button" value="load div by ajax" /> 
    <div> <!-- this div loaded by ajax --> 
    <div> 
    <a href="http://www.yahoo.com" class="do-tip">yahoo</a> <!-- HOW TO HERE, run the existing script only for this part, JQUERY UNCLE must have a solution--> 
    </body> 
    </html> 

any ideas? 
+0

아니요. 뭐 ? – Shikiryu

답변

6

당신이하려는 일이 완벽하게 명확하지는 않지만 MagicGuess 도구를 사용해보고 답변을드립니다.

그래서, 당신은

필요

가) 문서로드에 대한 몇 가지 기능을 수행; 이 기능은 페이지에 .do-tip 요소가있는 작업을 수행합니다.

b) AJAX를 통해 무언가를로드 한 후에도 동일한 기능을 수행 할 수 있지만 이제는 다른 요소 집합과 함께 작동해야합니다.

사실입니까?

function doEverythingINeed(selector) { 
    $(selector).qtip({ 
     content: 'This is a tip of active hovered element', 
     show: 'mouseover', 
     hide: 'mouseout', 
    }) 

} 

$(function() { 
    doEverythingINeed('.do-tip'); 
}); 

을 당신이 AJAX를 통해 HTML을로드 한 후 또 다른 선택으로 doEverythingINeed 전화 : 그렇다면, 여기에 내가 무엇을 할 것이라고한다. 당신이 $.ajax() 기능을 사용하는 경우, 당신은 할 수

$.ajax({ 
    //parameters 
    success: function() { 
     //some other actions if needed 
     doEverythingINeed('your selector'); 
     //more actions if needed 
    } 
}); 

희망을해야!

+0

아니요, 당신이 그것에 넣었다는 의미입니다. 추측 –

+0

FENOMENAL. 추측이 옳았다. 나는 qtip2와 똑같은 문제를 가지고 있었고 당신의 솔루션은 그 트릭을했습니다. –

4

다른 사용자에게 도움이 될 경우를 대비하여 jQuery의 .live() 이벤트 바인더를 사용하여 매우 유용한 사용 사례를 만들었습니다. 모든 $ ('문서를 다시 처리하여 엔지니어가 시도한 솔루션보다 훨씬 간단합니다. ') .ready() 이벤트.

유스 케이스 : 그것의 링크를 많이 (하여 HTML 태그)가있는 페이지입니다. $ ('문서')에. 준비() 나는 .click()를 동일한 유형의 더 많은 링크를 검색하고 페이지에 자신의 HTML을 주입 일부 아약스를()라는 함수에 관련 링크의 이벤트 바인딩. 문제는 새 링크가 묶이지 않았기 때문입니다. 새 링크를 클릭하면 .ajax() 코드가 트리거되지 않았습니다.

HTML을 삽입 한 후 ready 이벤트를 다시 트리거하려는 시도를 보았지만 .click() 대신 .live ('click)를 사용하여 이벤트를 바인딩하면 여분의 코드가 전혀없는 동일한 결과가 나타납니다. . 그런데

가, 다른 사람이 다른 곳에서 원래의 질문에 아주 좋은 솔루션을 제공하고있다 - 질문 참조 2238030

관련 문제