2010-12-21 2 views
11

편집 : 작동하지만 확실하지 않은 이유는 무엇입니까?jquery - 각/클릭 기능이 작동하지 않습니다.

$('button').each(function() { 
    $(this).bind(
     "click", 
     function() { 
      alert($(this).val()); 
     }); 
    }); 

이 지금, 난 그냥 출력 버튼 값 경고를하려고 해요 ... 작동하지 않는 이유는 잘 모르겠지만, 내 페이지에서 작동하지 않습니다. Firebug에서 콘솔 오류가 발생하지 않으며 작동하지 못하게하는 어떤 것도 볼 수 없습니다.

<table id="addressbooktable"> 
<thead> 
    <tr> 
     <th>Name</th> 
     <th>Action</th> 
    </tr> 
</thead> 

<tbody> 
    <tr> 
     <td>7892870</td> 
     <td><button id="button-20" class="custom-action" value="XY89" name="info">Click</button></td> 
    </tr> 

    <tr> 
     <td>9382098</td> 
     <td><button id="button-21" class="custom-action" value="XY544" name="info">Click</button></td> 
    </tr> 

    <tr> 
     <td>3493900</td> 
     <td><button id="button-22" class="custom-action" value="XY231" name="info">Click</button></td> 
    </tr> 
</tbody> 
</table> 

을 그리고 코드는 다음과 같습니다 :

내 HTML은 다음과 같습니다 전혀 아무것도하지 않는 클릭,

$('button').each(function() { 
    $(this).click(function() { 
     alert($(this).val()); 
    } 
    }); 

그러나? 내가 잘못 사용하고 있습니까?

+0

문제가 아니라,하지만 당신은 .each 필요하지 않습니다, 당신은 할 수 하나 이상의 노드가있는 jQuery 객체에서 .click을 사용하면 모두 바인딩됩니다. – Shurdoof

+0

답을 표시 하시겠습니까? – hunter

답변

20

는, 그들을 통해 루프 필요

$(function(){ 
    $("button").click(function() { 
     alert($(this).attr("value")); 
    }); 
}); 

그러나 더 정확한 선택이 될 수는 없다 버튼에 대한 메소드. .attr()을 사용하여 value 속성을 가져올 수 있습니다. 사용자 지정 특성을 사용하는 경우 data-attribute을 사용하십시오. 이 같은

당신은 );을 놓치고

$("button").click(function(){ 
    alert($(this).attr("value")); 
}); 
+0

고마워요,이 작품! 대답으로 –

+0

표시 하시겠습니까? – hunter

+0

each() 요소를 별도의 항목으로 처리하는 대신 선택기가 이미 요소를 참조하므로 훨씬 효율적입니다. – IamFace

0

넵. 이 시도 : 또한 거기에 return false 또는 .preventDefault()을 할 수 있습니다

$('button').click(function() { 
     alert($(this).val()); 
    }); 

.

$(function(){ 
    $("button[id^='button-'").click(function() { 
     alert($(this).attr("value")); 
    }); 
}); 
0

당신은 .val()을 사용할 수 없습니다

당신은이 같은 클릭 이벤트와 모든 버튼을 결합 할 수
+0

안녕하세요, 답변 주셔서 감사합니다 ... 게시 후, 나는 "바인딩"을 사용하고 그것이 작동하는 것 ... 누군가가이 사건에서 왜 작동하지만, 설명 할 수 있다면 궁금해? 내가 변경 한 것을 보여주기 위해 내 게시물을 편집하고 있습니다 ... –

+0

@ N00BNum1 - 코드에');'가 누락되어 유효하지 않습니다 ... 내 대답 참조 :) –

7

을 시도하고 document.ready 처리기에 코드가 있는지 확인 :

$(function() { 
    $('button').each(function() { 
    $(this).click(function() { 
     alert($(this).val()); 
    }); //missing); here! 
    }); 
}); 

가 그 <button> 때까지 실행되지 않습니다이 방법을 요소는 $('button')에 대한 DOM에 있습니다. 당신은 ) 누락

$(function() { 
    $('button').click(function() { 
     alert($(this).val()); 
    }); 
}); 
+0

우물, 우물 +1 한 항목 – lnrbob

1

을 : : 또한,이 같은 요소 세트에 .click()를 실행할 수 있습니다 아마

$('button').each(function(){ 
      $(this).click(function(){ 
       alert($(this).val()); 
      }); 
     }); 
관련 문제