2012-04-10 3 views
0

여기에 어떤 문제가 있는지 알고 싶습니다. 다음을 실행하려고하면 작동하지 않으며 경고 상자에는 오류가 없습니다.jquery 문제가 발생하면 클릭하십시오.

$(function() { 
$("tbody[name=leadstores]").on("click","tr",function(e){ 

alert("clicked"); 
}); 

}); 

내가 뭔가 잘못하고 있는지 궁금합니다. 내가

여기 .live

<table id="tableprod" style="width: 100%; "> 
<thead id="storelocation" class="fixedHeader" style="min-width: 800px; "> 
<tbody id="tbbody" name="leadstores"> 

<tr id="20"> 
<td name="street" class="company" style="width: 400px; padding-right: 2%; ">Shop 1012, Westfield Bondi Junction, 500 Oxford Street</td> 
<td name="suburb" class="company" style="padding-right: 3%; ">Bondi Junction</td> 
<td name="postcode" class="field" style="padding-right: 3%; ">2022</td> 
<td name="state" class="field" style="padding-right: 3%; ">NSW</td> 
<td name="phone" class="company">(02) 9388</td> 
</tr> 
<tr id="21"> 
<td name="street" class="company" style="width: 400px; padding-right: 2%; ">Kiosk KG17, Westfield Doncaster, 619 Doncaster Road</td> 
<td name="suburb" class="company" style="padding-right: 3%; ">Doncaster</td> 
<td name="postcode" class="field" style="padding-right: 3%; ">3108</td> 
<td name="state" class="field" style="padding-right: 3%; ">VIC</td> 
<td name="phone" class="company">(03) 9840</td> 
</tr> 
<tr id="23"> 
<td name="street" class="company" style="width: 400px; padding-right: 2%; ">Kiosk 66A, Macquarie Centre, cnr Herring & Waterloo Rd</td> 
<td name="suburb" class="company" style="padding-right: 3%; ">North Ryde</td> 
<td name="postcode" class="field" style="padding-right: 3%; ">2113</td> 
<td name="state" class="field" style="padding-right: 3%; ">NSW</td> 
<td name="phone" class="company">(02) 9889</td> 
</tr> 
</tbody> 
</table> 
+3

당신의 HTML에 달려 그보십시오. – SLaks

+0

오류 콘솔을 확인하십시오. 다른 스크립트 오류가있을 수 있습니다 – Shyju

+0

질문에 대답하는 열쇠는 이미 말씀 드린 SLAK으로 HTML을 게시하는 것입니다. – j08691

답변

0

.live() 문제를 해석 할 수 타겟팅 DOM (TBODY [이름 leadstores =] 케이스에)

넣은 후 페이지를 동적으로 추가

. 당신이

동적으로 DOM을 추가하는 이벤트를 바인딩 할 수 있도록

.live()는 새로 추가 된 DOM을 수신합니다.

편집 : .live()가의 jQuery 1.7.x 이상에서 더 이상 사용되지 않습니다 때문에

,

$("#tableprod").on("click","tr",function(e){ 
    alert("clicked"); 
}); 

는이

+0

하지만 jQuery는 .live. for를 삭제합니다. 앞으로 이동해야합니다. – RussellHarrower

+0

음 .lived()는 1.7.x – InspiredJW

+0

이 작동하지 않으므로 사용되지 않습니다. 포기하고 .click을 사용합니다. – RussellHarrower

0

테이블 요소가 TBODY 요소와이 있어야 테이블 인을 사용하는 경우

이 스크립트가 작동하고 있다는 말을 잊어 버렸 name = "leadstores"를 입력하면

<table> 
<tbody name="leadstores"> 
<tr><td>&nbsp;</td></tr> 
</tbody> 
</table> 
,515,
+0

.live를 사용할 때 스크립트가 정상적으로 작동합니다. – RussellHarrower

+0

테이블이 DOM에 동적으로 추가 되었습니까? 나는. 페이지가로드 될 때 페이지에 이미 존재합니까? 그렇지 않으면 on()이 작동하지 않습니다. on() 메소드 설명 : ** 이벤트 핸들러는 현재 선택된 요소에만 바인드됩니다. 코드가 .on()을 호출 할 때 페이지에 존재해야합니다. ** on() 메소드를 사용하려면 페이지에 이미 존재하는 요소에 적용해야합니다 'body': $ ("body"). on ("click", tbody [이름 = '리드 스토어'] tr ", 기능 (e) {경고 ("클릭 "; – azawaza

관련 문제