2017-09-13 4 views
-1

우리는 id # some-list로 정렬되지 않은 목록을 가지고 있습니다. 백본 구현에서 특정 데이터가 반환되면 목록 항목이 렌더링되어 목록에 추가되고 목록이 표시됩니다.ul 목록 내용 변경 jQuery

JQuery를 사용하여 변경이 완료되면이를 감지하고 싶습니다. $(#some-list).ready()$(#some-list).load()을 사용했지만 작동하지 않는 것 같습니다.

이러한 변경 사항을 캡처하는 방법은 무엇입니까? 여기 누군가가 불을 피울 수 있을까요?

답변

1

글쎄 코드를 게시하지 않았으므로 어디에서 실패했는지 추측하기가 어렵습니다.
그러나 일반적으로 내가 할 것이라고 아약스 콜백 사용자 지정 이벤트를 트리거하는 것입니다 (아약스를 사용하여 내용을 얻고 목록에 추가하는?). 예를 들어

:

loadData(){ 
    // invoke the ajax request 
    var def = $.get(...); 
    def.then(function(result){ 
    // $(#ul) append(result) ... 
    // now trigger the custom event 
    $(document).trigger('listRendred'); 
    }); 
} 

이제 당신이 그것을들을 수 있습니다 다른 장소 또는 스크립트에 :

$(document).on('listRendred', function(e){ // do what ever... }) 
+0

이 매우 도움이됩니다를 사용하여 이벤트를 수신! 호기심에서 맞춤 이벤트를 실행할 때 모범 사례가 있습니까? –

+0

@BoYuan 예 -이 답변에 표시된 것처럼 jQuery DOM 이벤트를 사용하지 않는 것이 가장 좋습니다. Backbone의 내장 이벤트 API를 사용하여 백본 이벤트를 트리거하십시오. [기타 답변] (https://stackoverflow.com/a/46207471/2333214)에 나와 있습니다. –

1

당신이 이벤트를 수신을 시도 할 수 BackboneJS을 사용하고 있기 때문에.

어떤 이벤트를 사용할 수 있는지 알아 보려면 내 * 자리 표시자를 바꾼 다음 코드를 시도하고 브라우저의 콘솔을 살펴보십시오.

*backboneobject*.on("all", function(e) { 
    console.log(e) 
}); 

이후 단지

*backboneobject*.on("*yourevent*", function() { 
    doStuff(); 
}); 
+0

입력 해 주셔서 감사합니다. 미안해, 백본을 처음 접했을 때 클라이언트 측의 백본 객체가 무엇이겠습니까? 등뼈? 창. 백본? –

+0

@ Sag1v와 마찬가지로 코드가 없어도 좋은 대답을하기가 어렵습니다. 아마도 로딩 기능으로 불러 온 모델 모음을 가지고있을 것입니다. 그래서 코드는'nameofcollection.on ("change", function() {doStuff();})' – sbz