클릭 한 div에 클래스를 추가하려고합니다. 아무 작업도하지 않는 것 같습니다. 다음은 내 jquery입니다.
$("#dropdown-nav").click(function () {
this.addClass('open');
console.log('test');
});
이전 답변에 의해 플래그가 지정된 하나의 명확한 문제와 하나의 잠재적 문제가 있습니다 (Abinash에 대한 귀하의 의견에 의해 첫 번째 문제를 해결하는 그가 제안한 것을 수행해도 작동하지 않는다고 표시됨).
문제 A : addClass
DOM 요소가 아닌 jQuery 객체의 메서드이지만 click
콜백 내에서 this
DOM 요소를 참조합니다. jQuery 객체로 감싸려면 $(this)
또는 jQuery(this)
( noConflict
모드에서)를 사용하십시오. 이전 답변을 참조하십시오.
문제 B : 이것만으로 문제가 해결되지 않는다면, 핸들러를 dropdown-nav
연결하는 코드를 실행할 때 요소가 아직 존재하지 않을 가능성이 가장 높습니다 click
. 존재하는지 확인하는 두 가지 방법이 있습니다.
HTML 파일의 요소 아래에script
연결 코드가 포함 된 태그를 넣으십시오 . 일반적으로 닫는 태그 바로 앞에 스크립트를 배치하는 것이 가장 좋습니다 . 또는,</body>
jQuery의 ready
콜백을 사용하십시오 .
경우에 사람들은 그것을 해결하지 않는, 다른 가능한 설명은 다음과 같습니다 :
id
귀하가 생각하는 항목이 없습니다 ( dropdown-nav
).click
이벤트 를 연결하고 코드가 이벤트를보기 전에 이벤트를 중지합니다.다음은 문제 B에 대한 솔루션 # 1을 사용하여 두 문제를 모두 해결하는 예입니다.
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
<style>
.open {
color: blue;
}
</style>
</head>
<body>
<div id="dropdown-nav">Drop-down nav</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
// Note that this is BELOW the element in the HTML, so the element exists
$("#dropdown-nav").click(function() {
$(this).addClass("open");
});
</script>
</body>
</html>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다