2013-03-23 1 views
-1

특정 제품을 나열하는 웹 사이트를 개발 중입니다. 페이지에서 jQuery 페이지 매김을 사용하여 결과에 매김을 달았습니다. 그 목적을 위해 this 스크립트를 사용했습니다..click()이 div 내에서 제대로 작동하지 않습니다.

그래서 모든 제품 정보는 내가 목록에 추가 할 제품을 수 있도록 링크가 해당 제품 내에서 <li></li>

<div class="content"> 
    <div id="loading"></div> 
<div id="container"> 
     <div class="data"></div> 
    <div class="pagination"></div> 
</div> 

내부 class="data" 내에서 표시됩니다.

<span class="addlist"> 
<a id="id_1249" class="m-btn" onclick="return false" href="http://index.php/action/add/">Add</a> 
</span> 

내가 클릭 이벤트

$(".addlist").click(function() { 
    alert("clicked."); 
}); 

내가 아무 일도 발생하지 않고 메시지를 표시하지 않습니다 추가 링크를 클릭하면 문제를 확인하는 간단한 함수를 만들었습니다.

오랜 시간 동안 테스트 한 후 <div id="container"> 외부에 링크 (<a href="index.php" class="addlist">Visible Text</a>)를 삽입하면 click 이벤트가 완벽하게 작동합니다. 그러나 그것의 내부에 배치하면 <div id="container"> 그것은 작동하지 않습니다. 나는 $.noConflict();을 jQuery 함수 안에 추가했지만 여전히 사용하지는 않는다.

누군가가 문제의 원인을 말해 줄 수 있습니까?

+0

http://jsfiddle.net/Ynk3f/ 저에게 맞습니다. – Andrey

+0

@Andrey : 저는 이것이 문서 작성기가 스크립트를 'document.ready (function() {...}'로 감싸는 방식과 더 관련이 있다고 생각합니다.)'또는'window.onload = function() {};을 호출합니다. 'return false'는 특히 스크립트가 인라인되지 않기 전에 항상 먼저 실행되는 인라인'onclick '내에 있으므로 의심스러워 보입니다. 우리는 OP 코드가'document.ready..'에 싸여 있는지, 아니면'a' 링크가 들어있는 HTML 뷰 전체를 얻을 수 있는지 알아야합니다. – Nope

+0

@Andrey 내용이 잘못되었을 때 작동하지 않습니다. 페이지 매김을위한로드. – LiveEn

답변

6

$("#container").on('click',".addlist",(function(e) { 
    e.preventDefault(); 
    alert("clicked."); 
}); 

link()가 위임 이벤트

+0

감사합니다 ... :) – LiveEn

+0

welcome .. 다행히 도왔습니다 .... :) .cheers – bipen

1

$('#parent').on('click', '.addlist', function() { 
    alert("clicked."); 
}); 

요소가 준비 문서에 존재하지 않을 수보십시오. 당신의 addlist 이후

+0

물론 그렇습니다. 나는 bipen이 대답하면서 대답을 편집했다. – griffla

+0

옙 .. on() 위임 된 이벤트가 나를 위해 일했습니다. :) – LiveEn

2

난 당신이 너무 빨리 false를 반환하고 생각에 대한 자세한 내용을 ... 당신이 on() 위임 이벤트를 사용할 필요가 동적으로 추가됩니다. 일을

시도 :

HTML

<span class="addlist"> 
<a id="id_1249" class="m-btn" href="http://index.php/action/add/">Add</a> 
</span> 

JS 당신이 앵커에 클릭 핸들러를 같은 return false을 가지고 있기 때문에 아마

$(".addlist").click(function(event) { 
    event.preventDefault(); 
    alert("clicked."); 
}); 
+0

그의 코드는 http://jsfiddle.net/에서 작동합니다. Ynk3f /, 그가 언급하지 않은 것이있다. – Andrey

+0

@Andrey 내용이 동적이기 때문에 문제가 발생했습니다. 솔루션은 bipen이 언급 한 것입니다. 'on()'위임 된 이벤트. – LiveEn

1

. 그것을 제거하고 그것이 작동합니다.

+0

false를 클릭하면 다음 페이지로 이동합니다. 내가하고 싶은 일은 아약스 게시를하고 링크로 이동하는 것보다 메시지를 표시하는 것입니다. – LiveEn

관련 문제