Jquery
Jquery - 이벤트
휼양
2022. 11. 16. 23:30
1. 이벤트 생성 : on()함수를 이용해서 이벤트를 등록한다
<div id="container">
<ul>
<li>html</li>
<li>css</li>
<li>javascript</li>
<li>jqeury</li>
</ul>
<p>p태그 이벤트</p>
<h3>h3이벤트</h3>
</div>
<script>
$(()=>{
$("#container>ul>li").on("click",function(e){
console.log($(e.target).text());
})
//이벤트를 설정할 때 이벤트 객체에 데이터 저장하기
$("#container>ul>li").on("click",{count:0},(e)=>{
e.data.count+=1;
console.log(e.data);
})
// $("#container>ul>li")[0].addEventListener("dblclick",e=>{
// console.log($(e.target).prev());
// })
//한 번에 여러 이벤트 적용하기
$("#container>h3").on({
//"click":e=>{alert("마우스 올라옴")},
"mouseenter":e=>{$(e.target).css("backgroundColor","red")},
"mouseleave":e=>{$(e.target).css("backgroundColor","white")},
"dblclick":e=>{$(e.target).css("fontSize","50px")}
})
});
</script>
2. 이벤트 설정
① 한 번만 실행되는 이벤트 설정
<button id="btn">한 번만 실행되는 버튼 : one</button>
<script>
$("#btn").one("click",e=>{
alert("버튼눌렸다!");
})
</script>
② 이벤트 속성명으로 이벤트 설정
<div id="eventTarget">
<form action="">
<input type="text" name="title" id="title"> <br>
<select name="type" id="type">
<option value="notice">공지</option>
<option value="free">자유</option>
<option value="secret">비밀</option>
</select><br>
<textarea name="content" id="content" cols="30" rows="10"></textarea>
<br>
<span style="font-size: 20px;font-weight: bolder;"></span>
<br>
<input type="password" id="password"><br>
<input type="password" id="passwoedck"><br>
</form>
</div>
<script>
$(function(){
//레디 함수
$("#eventTarget>form>input#title").focus(function(e){ //포커스 이벤트를 주는것
$(e.target).css({"backgroundColor":"green","color":"yellow"})
});
$("#eventTarget>form>select#type").change(e=>{
alert($(e.target).val());
})
$("#eventTarget>form>textarea#content").keyup(e=>{
const strVal=$(e.target).val();
$(e.target).next().next().text(`${strVal.length}/100`).css("color","gray");
})
})
</script>
③ hover 이용하기
<img id="imgTarget" src="https://item.kakaocdn.net/do/494ea37cf81a6a1efb5dfab1783ab487616b58f7bf017e58d417ccb3283deeb3" alt="" width="200" height="200">
<script>
//https://item.kakaocdn.net/do/494ea37cf81a6a1efb5dfab1783ab487616b58f7bf017e58d417ccb3283deeb3
//https://item.kakaocdn.net/do/494ea37cf81a6a1efb5dfab1783ab4878f324a0b9c48f77dbce3a43bd11ce785
//mouseenter, mouseleave를 동시에 지정한 것
$(function(){
$("img#imgTarget").hover(e=>{
$(e.target).attr("src","https://item.kakaocdn.net/do/494ea37cf81a6a1efb5dfab1783ab487616b58f7bf017e58d417ccb3283deeb3");
},
e=>{
$(e.target).attr("src","https://item.kakaocdn.net/do/494ea37cf81a6a1efb5dfab1783ab4878f324a0b9c48f77dbce3a43bd11ce785");
});
$("#hoverUse").hover(
function(e){ // 마우스 enter했을때
$(e.target).css("fontSize","26px");
},
function(e){ //마우스가 나갈을 때
$(e.target).css("fontSize","16px");
}
);
});
</script>
3. 이벤트 삭제
<button id="eventOff">버튼</button>
<script>
$(function(){
let count = 0;
$("#eventOff").click(e=>{
console.log("실행")
if(count++<5){
alert("버튼클릭!")
}else{
$(e.target).off("click");
}
})
})
</script>