이벤트를 실행하는 요소의 ID를 얻을 수 있는 방법이 있나요?
다음과 같은 방법을 생각하고 있습니다:
<html>
<head>
<script type="text/javascript" src="starterkit/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("a").click(function () {
var test = caller.id;
alert(test.val());
});
});
</script>
</head>
<body>
<form class="item" id="aaa">
<input class="title"></input>
</form>
<form class="item" id="bbb">
<input class="title"></input>
</form>
</body>
</html>
물론 이벤트가 첫 번째 폼에서 실행되는 경우 test
변수에 "aaa"
라는 ID가 포함되어야 하고, 두 번째 폼에서 실행되는 경우 "bbb"
가 포함되어야 한다는 점을 제외하고는요.
jQuery에서 event.target
은 항상 이벤트를 트리거한 요소를 참조하며, 여기서 event
는 함수에 전달된 매개변수입니다(http://api.jquery.com/category/events/event-object/).
$(document).ready(function() {
$("a").click(function(event) {
alert(event.target.id);
});
});
또한 this
도 작동하지만 jQuery 객체가 아니므로 jQuery 함수를 사용하려면 $(this)
로 참조해야 합니다:
$(document).ready(function() {
$("a").click(function(event) {
// this.append wouldn't work
$(this).append(" Clicked");
});
});
비록 이 문제를 언급한 것은 다른 글, 맞춤법 싶었다.
id $ (프랑스타르제) '' 정의되지 않았습니다.
'$ (프랑스타르제) [0] .id 는 id' 속성.
'event.target.id' id 특성은 있습니다.
'this.id' 을 통해 id 속성.
및
id '$ (이)' 가 정의되지 않았습니다.
물론 그 사이에 반 객체에는 jQuery 객체를 이견을 보이고 있다. " id"; 속성 때문에 DOM DOM element 는 빈틈없어야 객체에는 에서 사용할 수 있습니다.
(이 때문에 아마도 다른 사람이 걸리지 걸리지 me up, up)
Json 으로 및 데이터베이스, 테이블 무중단으로 아웃하려면 작성합니까 데이터를 받을 것이 표로. Id '독특한' 필요한 모든 테이블의 행 attaboy, 이는 다른 외곽진입 필요한 경우 추가 작업 때문에 DOM 변경됩니다.
$("table").delegate("tr", "click", function() {
var id=$(this).attr('id');
alert("ID:"+id);
});
event.currentTarget
우리 객체에는 설정되었습니다 DOM 노드입니다 있는 이벤트 핸들러.
우리는 대부분의 진흙 네스트된 하는 노드입니다 에서 시작 프로세스
event.target
항상 첫 번째 속성을 이벤트 객체를 이벤트 핸들러 (예:
document.querySelector("someSelector").addEventListener(function(event){
console.log(event.target);
console.log(event.currentTarget);
});
이벤트에 대한 자세한 내용은 http://maciejsikora.com/standard-events-vs-event-delegation/ 에 위임 읽을 수 있습니다
위임되었습니다 이벤트 핸들러도 뭔가를해야합니다 수 있는 경우, 다음과 같습니다.
<ul>
<li data-id="1">
<span>Item 1</span>
</li>
<li data-id="2">
<span>Item 2</span>
</li>
<li data-id="3">
<span>Item 3</span>
</li>
<li data-id="4">
<span>Item 4</span>
</li>
<li data-id="5">
<span>Item 5</span>
</li>
</ul>
js 같은 코드를 사용하여 조종됩니다 있습니다.
$(document).ready(function() {
$('ul').on('click li', function(event) {
var $target = $(event.target),
itemId = $target.data('id');
//do something with itemId
});
});
$(document).ready(function() {
$('ul').on('click li', function(event) {
var $target = $(event.target).is('li') ? $(event.target) : $(event.target).closest('li'),
itemId = $target.data('id');
//do something with itemId
});
});
또는 원하는 경우 가독성을 최대화합니다 (또한 불필요한 반복을 피하고 jQuery 의 랩할 페이징됩니다):
$(document).ready(function() {
$('ul').on('click li', function(event) {
var $target = $(event.target),
itemId;
$target = $target.is('li') ? $target : $target.closest('li');
itemId = $target.data('id');
//do something with itemId
});
});
Is () '이벤트' 를 사용할 때 위임을 확인하는 방법은 매우 이벤트 대상 중 다른 것들을) 는 실제로 what you need it to be. '오클로스트 (선택기를)' 을 사용하여 DOM 트리에서만 위로 검색 및 사용 '스피드 (선택기를)' (일반적으로 함께 '이퍼스트 ()', ' (선택기를) 스피드 ()' 에서와 같이 이퍼스트) 아래로 검색할 수 있습니다. # 39 너회가 don& 이퍼스트 오클로스트 () ',' t need to 사용할 때 사용할 수 있기 때문에 ' ()', '만' 스피드 (), 조상 중에 첫 번째 일치하는 되돌려줍니다 되돌려줍니다 일치하는 모든 요소 "라고 말했다고 한다.
var buttons = document.getElementsByTagName('button');
var buttonsLength = buttons.length;
for (var i = 0; i < buttonsLength; i++){
buttons[i].addEventListener('click', clickResponse, false);
};
function clickResponse(){
// do something based on button selection here...
alert(this.id);
}
Apc® 이스피들 [here] (
).