2011-08-10 3 views
3

를 요소를 고정하는 바인딩을하지, 여기 내 html로 ....delegate() 나는 대리인이 기능을 사용하려고 시도하고 성공하고 있지 않다 태그를

이 SharePoint에서 나를 위해 생성
<td class="ms-vb-icon"> 
    <a tabindex="-1" href="/ACKNOWLEDGEMENT%20OF%20DEBT%20-%20SCOTLAND.doc" 
        onclick="return DispEx(this,event,'TRUE','FALSE','TRUE','SharePoint.OpenDocuments.3','0','SharePoint.OpenDocuments','','','','41','1','0','0x7fffffffffffffff')"> 
    <img border="0" alt="ACKNOWLEDGEMENT OF DEBT - SCOTLAND.doc" title="ACKNOWLEDGEMENT OF DEBT - SCOTLAND.doc" src="/_layouts/images/icdoc.gif"></a> 
</td> 

, 더 많은 거기입니다 내 문제의 요인이 될 수있는 표에서 전체 목록은 here을 참조하십시오. 페이지가로드 된 후 테이블 (id onetidDoclibViewTbl0)의 html이 으로 생성됩니다. 아약스 호출을 통해.

심지어이있는 작동하지 않았다 시도

$('#onetidDoclibViewTbl0').delegate('tr td.ms-vb-icon a', 'click', function(event) { 
    alert(‘document anchor clicked’); 
}); 

위임 기능을 사용하려고 시도한 ... 중 하나

$('body').delegate('a', 'click', function() { 
    alert('this really should work?'); 
}); 
+0

다음은 비슷한 질문입니다. http://stackoverflow.com/questions/6993225/jquery-click-not-working-on-appended-dom/6993247#6993247 –

답변

4

당신의 연결의 대부분은 return false;이있는 온 클릭 속성이 . 이렇게하면 이벤트가 DOM을 버블 링하는 것을 방지 할 수 있습니다.이 메서드는 delegate 메서드가 올바르게 작동하는 데 의존합니다.

1

네가 맞아 ... 정말 효과가있다. 코드를 가져 와서 jsFiddle에 넣었습니다. 그건 잘 작동하는 것 같습니다. 아마도 당신이 사용하고있는 jQuery 버전과 관련이 있을까요? 델리게이트가 비교적 최근에 추가되었습니다 ...

또한 body 요소는 코드가 실행되는 지점에 존재해야합니다. 당신은 사냥꾼이 문서 준비 콜백에서 제안하고 그것을 포장 할 때 아마 최선을 다할 것입니다.

+0

ooh jsFiddle cool! – Rob

+0

@Rob : 예, 문제를 보여 주는데 정말 편리합니다. 사람들이 해결책을 훨씬 쉽게 찾을 수 있음을 의미합니다. – Spycho

관련 문제