jQuery (또는 일반 JS)를 사용하여 새로운 DOM 요소를 추가 할 수 있습니다.

StackOverflow https://stackoverflow.com/questions/893995

문제

분명히 : 나는 기존의 후크를 새로운 DOM 요소에 넣는 방법을 묻지 않습니다. Live () 기능과 이전 LiveQuery 플러그인에 대해 알고 있습니다. 나는 다른 것을 묻고있다.

내가 알고 싶은 것은 새로운 DOM 요소의 생성에 연결하는 방법입니다. 제가 요구하는 이유는 제 1 자 스크립트를 제어 할 수없는 타사 사용자 JS 스크립트를 만들기 때문입니다. 해당 퍼스트 파티 스크립트 (난독 화 된)는 새 DOM 요소를 추가하여 페이지를 주기적으로 업데이트합니다. 해당 요소가 추가 된 후 코드를 실행하고 싶습니다.

$ ( '...') .bind ( 'ajaxsuccess', function () .....)를 사용하여 일부 추가 기능은 아니지만 모두는 작동하지 않습니다.

올바른 솔루션이 없습니다

다른 팁

항상 문서와 함께 추가되는 경우 CreateElement 메소드를 간단히 바꾸고 추적을 수행 할 수 있습니다.

document.replacedCreateElement = document.createElement;
document.createElement = function(tagName) {
    this.replacedCreateElement(tagName);
    //do your tracking  
}

왜 당신이 알고 있는지 묻는 이유는 모르겠습니다. 라이브 퀴리. 라이브 퀴리 임의의 새로운 DOM 요소에 연결할 수 있습니다. 이 외에, 내가 아는 유일한 것은 DOM 방법 (예 : AppendChild 등)에 연결하는 것입니다.

jQuery에 통합 된 Live () 함수는 실제로 전체 LiveQuery 구현이 아닙니다. (Resig는 코드 크기를 너무 멀리 불고 통합하기에는 너무 많은 기능이라고 생각했습니다)

LIVE ()에서 누락 된 것은 다음 유형 기능입니다.

$('*').livequery(function() {
 // do something
});

이것을 사용하면 추가를 포착해야합니다.

글쎄, 나는이 쌍과 함께 갔다.이 쌍은 20 초 이내에 원하는 DOM 업데이트에서 발사되는 것 같습니다.

$( '#someid' ).bind( 'ajaxSuccess', function() { ... } );
$( '#someid' ).ajaxSuccess( function( e, r, s ) { ... } );

LiveQuery에 따라 페이지로드를 느리게 할 필요가 없으며, CLERCEATELEMENT 솔루션이 CPU를 삭감했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top