2012-05-22 2 views
6

특정 개체에 대한 툴팁을 만드는 함수가 있습니다. 현재, 아약스 삽입 후 툴팁 함수를 실행하여 새로운 툴팁 객체를 만들고 추가합니다. 수동으로 실행하는 대신 삽입시 도구 설명 기능을 자동 실행하려면 .on()을 사용하는 방법이 있는지 궁금합니다.JQuery - 요소 삽입을 사용한 .on 사용

$('[title]').on('inserted', function(){ 
    tooltip(this); 
}); 

나는 약간의 독서를했고, 사용자 정의 트리거가 갈 수있는 방법이 될 수있는 것처럼 보이지만, 이런 식으로 뭔가가 :

답변

1

다음은 요청에 따라, 의사 코드입니다.

$(document).ready(function() { 
    $('body').on('added','*',function() { 
     console.log($(this),'has been added'); 
    }); 
    $('body').append('<div>This is the first div</div>'); 
}); 

(function($) { 
    fncs = { 
     append:$.fn.append, 
     appendTo:$.fn.appendTo 
     // etc. 
    } 
    // we're assigning the original functions in this 
    // object to be executed (applied) later 
    $.fn.append = function() { 
     fncs.append.apply(this,arguments); 
     $(this).children().last().trigger('added'); 
     return $(this); 
    } 
    $.fn.appendTo = function() { 
     fncs.appendTo.apply(this,arguments); 
     return $(this); 
     // no need to trigger because this function calls the one 
     // above for some reason, and it's taking care of the 
     // triggering the right element(s I think) 
    } 
})(jQuery); 
+0

좋은 해결책. 미래에 jquery에 내장 된 것이면 이것은 굉장 할 것입니다. 그러나 이것은 현재 할 것입니다. 감사! –

+0

http://api.jquery.com/category/manipulation/에서 DOM 조작을위한 전체 함수 목록을 살펴볼 수 있습니다. 기능 릴리스에서 구현되기를 기대합니다. – inhan

0

를 존재한다면 나는 이것은 싶어요 : 예를 들어

찾고자하는 응답이 아니라 툴팁을 요소에 직접 첨부하지 않습니다. 그래서

$('body').on('mouseover','.tooltip',function() { 
    // show tooltip 
    console.log($(this).data('tooltip')); 
    return false; 
}).on('mouseout','.tooltip',function() { 
    // hide tooltip 
    return false; 
}); 

당신은 반드시 직접 아이로 (몸에 추가 어떤 대신 내가 툴팁이 마우스 오버에 표시하고 다음과 같은 방법으로 .on() 이벤트 핸들러를 사용하고자하는 사람을위한 클래스를 사용합니다)이 이벤트 처리기를 트리거합니다.

아마도 클래스와 함께 각 요소에 툴팁 데이터를 할당하는 추가 기능을 만들 것입니다.

$.fn.extend({ 
    tooltip:function(text) { 
     text = text || ''; 
     return $(this).each(function() { 
      $(this).data('tooltip',text).addClass('tooltip'); 
     }); 
    } 
}); 

$('#someID').tooltip("Click me!"); 
$('button').tooltip("I'm a button"); 
+0

좋은 아이디어지만, 실제로 내가 찾던 답변이 아닙니다. 툴팁은 단지 예일 뿐이므로, 나는이 문제를 상당히 자주 겪었으며, 좋은 해결책이 있다면 궁금해했다. :) –

+0

조작 기능을 무시하고 '추가'와 같은 사용자 정의 이벤트 처리기를 트리거하는 것을 고려 했습니까? – inhan

+0

확장 할 수 있습니까? –

관련 문제