주어진 코드 :"여기"가 무엇을 의미합니까?
$(element, document).mousedown(function() {
$(this).attr('id'); // get id of the element
});
this
을 사용하지 않고 코드를 다시 작성하는 방법은 무엇입니까?
주어진 코드 :"여기"가 무엇을 의미합니까?
$(element, document).mousedown(function() {
$(this).attr('id'); // get id of the element
});
this
을 사용하지 않고 코드를 다시 작성하는 방법은 무엇입니까?
는 다음과 같은 사용할 수 있습니다
: 그래서, 대신, 당신은 고려할 수 있습니다? 그게 뭐가 잘못 됐어?,이 무엇의 약자입니까? 현재의
mousedown
속성을 정의하는 요소에 이러한 맥락에서
this
점.
여기에서는 사용하지 않을 이유가 없습니다. 당신이하고 싶은 일에 대해 자세히 설명해 주시겠습니까?
이 경우 "this"는 클릭 된 요소를 참조합니다. 필요하지거야하지만 당신은 모든 요소에 대해이 같은 코드를 가지고해야합니다 :
$("#button").mousedown(function(){
$("#button").attr("id");
})
그것은 함수의 실행 컨텍스트를 의미 자바 스크립트로
@cwallenpoole 왜 나에게 대답을 편집합니까? – Coomie
닫기를 놓치 셨습니다. – cwallenpoole
이에 둘 훨씬 쉽다. 이 경우 jQuery에서 설정 한 요소에 this
을 설정하면 도움이됩니다. 그러나 자체 작성 기능을 사용하면 일반적으로 전역 개체를 참조하여 끝납니다.
새로운 기능 범위를 입력 한 경우 새 기능이 새 기능 범위를 갖기 때문에 대개이 기능을 유지해야합니다. 예
$('div').each(function(index, item) {
var that = this;
$(this).mousedown(function() {
//this could be something different than before
//so we use the that reference
$(that).hide();
}
});
들어
은 "이"기능의 범위를 말한다. 함수와 관련하여, 이것은 동작중인 요소입니다. 당신이 코드를 작성한 경우, 액션은 마우스가 떼 지므로, 실행중인 요소는 이것입니다. 희망이 도움이됩니다.
문제는 this
을 사용하는 것보다 더 효율적인 것을 얻지 못할 것이라는 것입니다. 그 밖의 모든 것들은 두 번째 요소 조회를 필요로하거나 다소 비싸지 만 스코프 (this
)에있는 객체를 사용하는 것보다 비용이 많이들 것입니다.
$(element, document).mousedown(function() {
$(element, document).attr('id');
});
이 확인 될 수도 있지만 당신의 요소는 실제로 (클래스 선택과 같은) 여러 값을 반환하는 선택하는 경우, 당신은거야 문제가있다.
$(element, document).mousedown(function(e) {
$(e.target).attr('id'); // Get id of the element.
});
이유 :
–질문에서'$ (element, document)'가'$ (selector, context) '로 변경 되었다면 이것은 매우 적합합니다. 그 안에 특별한 경우를 묻고 있습니다 – naveen