1) 이벤트 참고
2) file api참고
200925
<button>클릭</button>
document.getElementById("myBtn").onclick = proc; // 수행될 함수명만
document.getElementById("myBtn").addEventListner("click",proc);
201005
$("p").on("click",function(e) { // function안 매개변수 e: event 객체
var eventType = e.type;
});
$(selector).hover(inFunction, outFunction)
$("#ex1bt").mousedown(function(e) {
let type = e.type;
let target = e.target;
let screenX = e.screenX;
let pageX = e.pageX;
alert(type+"\n"+target+"\n"+screenX+"\n"+pageX);
});
</script>
<h1>예제1. mousedown</h1>
<div id="ex1" style="width:300px;height:200px;background-color:orange;"></div>
<br>
<button id="ex1bt">버튼</button>
$("#ex2").mousemove(function(e){
$("#ex2").html("e.pageX: "+e.pageX+", e.pageY: "+e.pageY);
});
<h1>예제2. mousemove</h1>
<div id="ex2" style="width:260px;height:40px;background-color:lightgray;padding:20px;" ></div>
// 모두 사라질때 나타나게 하기 위해서 document ready때는 사라지도록
$("ex3bt").hide();
$(document).ready(function() {
// mouseover 전 이미지담을 변수
let orgSrc = "";
let chgSrc = "../../images/food/apple.png";
// 1. 마우스를 이미지 위에 올리면 다른 이미지로 변경 mouseover
$("#ex3 > img").mouseover(function() {
orgSrc = $(this).attr("src");
$(this).attr("src",chgSrc);
});
// 2. 마우스가 이미지 위에서 나가면 원래 이미지로 돌아옴 mouseout
$("#ex3 > img").mouseout(function() {
$(this).attr("src",orgSrc);
});
// 3. 이미지를 더블 클릭하면 이미지가 사라짐 dblclick
$("#ex3 > img").dblclick(function() {
$(this).hide();
// 4. 이미지가 모두 사라지면 이미지 하단에 [보이기] button이 나타남
if($("img:visible").length == 0) {
$("#ex3bt").show();
}
});
// 5. 보이기 누르면 다시 다 보임
$("#ex3bt").click(function(){
$("#ex3 > img").show();
$(this).hide();
});
});
<h1>예제3. mouseover</h1>
<div id="ex3">
<img src="../../images/food/burger.png" alt="버거" />
<img src="../../images/food/burrito.jpg" alt="부리또" />
<img src="../../images/food/lunchbox.png" alt="도시락" />
</div>
<button id="ex3bt">보이기</button>
$("p").on({click:~~~, dblclick:~~~, enter:~~~});
$("p").on({
mouseenter : function(){
$(this).css("background-color","gray");
}
, mouseleave : function(){
$(this).css("background-color","blue");
}
, click : function(){
$(this).css("background-color","yellow");
}
});
$('a').click(function(event){
event.preventDefault();
}
$('a').click(function(event){
return false;
}
$(document).ready(function(){
$("#ex1a").click(function(e){
var age = prompt("몇살이시죠","숫자만 입력하세용!");
if(age<15) e.preventDefault();
});
}); //doc ready
<h3>프롬프트로 나이 입력받아 15살 이상만 네이버로 이동하도록</h3>
<p id="ex1p"><a id="ex1a" href="http://www.naver.com">네이버</a>이동</p>
$(document).ready(function(){
$("#ex2span").click(function(e){
$(this).css("background-color","lightblue");
e.stopPropagation();
});
$("#ex2div").click(function(){
$(this).css("background-color","pink");
};
});
<div id="ex2div">div안에
<span id="ex2span">span있다</span>
</div>
$(document).ready(function() {
// 1. bt 클릭 시 sp과 dv에 배경색
$("#ex3bt").click(function(e) {
$("#ex3sp").css("background-color","yellow");
$("#ex3dv").css("background-color","pink");
e.stopPropagation();
});
// 2. sp 클릭 시 sp 테두리
$("#ex3sp").click(function(e) {
$(this).css("border", "3px solid red");
e.stopPropagation();
});
// 3. dv 클릭 시 dv안에 hello~ 글자 추가
$("#ex3dv").click(function(){
$(this).append("<div>Hello~</div>");
});
}); // doc ready
<div id="ex3dv" style="width:200px;height:200px;overflow:auto">
<span id="ex3sp" style="display:inline-block;width:100px;height:100px;">
<button id="ex3bt">클릭</button>
</span>
</div>
$(selector).on(...)
$(selector).off(...)
$(selector).on(event, childSelector, data, function, map)
$(selector).one(event, data, function)
$(selector).off(event, selector, function(eventObj), map)
// p요소에 마우스를 올리면 intro라는 스타일이 적용되고, 마우스를 벗어나면 적용됐던 스타일이 사라진다.
$("#ex1p").on("mouseover mouseout", function(){
$(this).toggleClass("intro");
});
/*
$("#ex1p").on({
mouseover : function() {
$(this).attr("class","intro");
}
, mouseout : function() {
$(this).attr("class","");
}
});
*/
<head>
<style>
.intro {
font-size: 150%;
color: red;
}
</style>
</head>
<body>
<p id="ex1p">Move the mouse pointer over this paragraph.</p>
</body>
$(selector).trigger(event, eventObj, param1, param2,...)
$(selector).triggerHandler(event, param1, param2,...)
$(document).ready(function() {
// 버튼을 누름으로써 ex1p의 trigger가 실행됨
// trigger의 이벤트는 myOwnEvent이고, 매개변수로 Chichi를 넘겨줌
$("#ex1bt").click(function() {
$("#ex1p").trigger("myOwnEvent",["Chichi"]);
});
// bt눌림 -> trigger 실행 -> trigger가 myOwnEvent를 실행시킴
$("#ex1p").on("myOwnEvent",function(){
$(this).text(name + "! What a beautiful name!").show();
});
}); // doc ready
<button id="ex1bt">trigger</button>
<p id="ex1p"></p>
$(document).ready(function() {
$("#ex2bt1").click(function() {
$("#ex2in").trigger("focus"); // input 박스의 focus도 실행됨
});
$("#ex2bt2").click(function() {
$("#ex2in").triggerHandler("focus"); // 코드는 수행되나 input의 focus는 실행안됨
});
$("#ex2in").focus(function() {
$("<span>포커스</span>").appendTo("body").fadeOut(1000);
});
}); // doc ready
<button id="ex2bt1">trigger</button>
<button id="ex2bt2">triggerHandler</button><br><br>
<input id="ex2in" type="text" value="To Be Focused"/>