일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- reducemethod
- Javscript
- CSS
- ES6
- filter메소드
- 나머지매개변수
- factoryfunction
- javascript some
- map메소드
- 단일스레드
- javascript
- CLASS
- 교차타입
- map
- javascript style
- Clipboard.writeText()
- method
- Typescript
- defalutparameter
- 전개구문
- 타입스크립트
- typescipt
- javascript reduce메소드
- every method
- js6
- html
- javascript every
- 기본값매개변수
- React
- CSS3
- Today
- Total
개발일지
이벤트 연결 본문
1) bind()메소드
*$(선택자).bind(eventName, function(event){ })
$(선택자).bind(object)
*이벤트 핸들러 안에서 this키워드는 이벤트를 발생한 객체.
2)$(선택자)/on('이벤트',function() {}) 메소드
3)$(선택자).이벤트(function (){ })
기타) $(선택자).toggle(function(//홀수번째 계산){}, function()//{짝수번째 계산});
$(선택자).toggle(function(//1번째계산){}, function(){//2번째계산},function(){//3번째계산}); -> 배수 계산
$(선택자).hover(function(//mouseenter){}, function()//{mouseleave});
이벤트 동시에 발생 문제 *****(이벤트 버블링)
* $(선택자).text('텍스트'); / 변수 = $(선택자).text();
* $(선택자)attr('속성','값') / 변수 = $(선택자).attr('속성')
* $(선택자)attr('속성','값') / 변수 = $(선택자).src('속성')
const header =$('h1',this).text();
const pharagraph =$('p',this).text();
this 키워드를 $()메소드의 두번쨰 매개변수로 넣어준다.
범위를 이벤트 발생 객체로 한정한다.
이벤트 발생 객체 안에만 선택자를 적용할 수 있다.
<style>
* {
margin: 0px;
padding: 0px
}
div {
width: 200px;
margin: 5px;
padding: 3px;
border: 1px solid red;
}
</style>
</head>
<body>
<div class="box1">
<h1>Header 1</h1>
<p>Paragraph1</p>
<img src="./images/a1.jpg" alt="asd">
</div>
<div>
<h1>Header 2</h1>
<p>Paragraph2</p>
<img src="./images/a2.jpg" alt="">
</div>
<div>
<h1>Header 3</h1>
<p>Paragraph3</p>
<img src="./images/a3.jpg" alt="">
</div>
<script>
$('div').click(function () {
let header = $(' h1', this).text();
let paragraph = $('p', this).text();
let att = $(' img', this).attr('alt');
let sty = $('div').css('border')
alert(header + '\n' + paragraph + '\n' + att + '\n' + sty)
})
</script>
예제1
<body>
<div class="qanda">
<p class="q">
<a class="trigger" href="#">
제가 갖고 있는 물품을 기부하고 싶은데요. 어떻게 하면 되나요?
</a>
</p>
<p class="a">꿈이야기에서 ‘필요한 나눔’으로 등록되어 있는 물품에
대한 기부를 원하시는 경우 ‘드림애플>아주특별한나눔>특별한나눔’
에서 기부 의사를 밝히실 수 있습니다. 또는 02-3472-3556(두드림)으로
바로 연락 주시면 절차와 방법에 대해 안내해드리겠습니다.</p>
</div>
<script>
let cnt = false; //true 열림 false 닫힘
function open_close() {
if (cnt == false) {
$('.qanda .a').css('display', 'block')
cnt = true
} else {
$('.qanda .a').css('display', 'none')
cnt = false
}
}
$('.trigger').bind('click', open_close)
</script>
객체 값에 함수를 적용한 이벤트
<style>
.reverse {
background: Black;
color: White;
}
</style>
</head>
<body>
<h2>Header-0</h2>
<h2>Header-1</h2>
<h2>Header-2</h2>
<script>
$('h2').bind({
mouseenter: function () { $(this).addClass('reverse') },
mouseleave: function () { $(this).removeClass('reverse') }
})
</script>
함수형 이벤트
<style>
.reverse {
background: Black;
color: White;
}
</style>
</head>
<body>
<h2>Header-0</h2>
<h2>Header-1</h2>
<h2>Header-2</h2>
<script>
$('h2').bind('mouseenter', function () {
$(this).addClass('reverse')
})
$('h2').bind('mouseleave', function () {
$(this).removeClass('reverse')
})
</script>
호버,토글
<style>
* {
margin: 0;
padding: 0
}
a {
color: #333;
text-decoration: none
}
.qanda {
width: 500px;
border: 1px solid #ccc;
padding: 10px
}
.qanda p {
text-align: justify;
line-height: 1.5em;
font-size: 14px
}
.qanda .q {
background: url(images/ico_q.gif) 0 0 no-repeat;
padding-left: 25px;
margin-bottom: 10px
}
.qanda .a {
background: url(images/ico_a.gif) 0 0 no-repeat;
padding-left: 25px;
display: none
}
</style>
</head>
<body>
<div class="qanda">
<p class="q">
<a class="trigger" href="#">
제가 갖고 있는 물품을 기부하고 싶은데요. 어떻게 하면 되나요?
</a>
</p>
<p class="a">꿈이야기에서 ‘필요한 나눔’으로 등록되어 있는 물품에
대한 기부를 원하시는 경우 ‘드림애플>아주특별한나눔>특별한나눔’
에서 기부 의사를 밝히실 수 있습니다. 또는 02-3472-3556(두드림)으로
바로 연락 주시면 절차와 방법에 대해 안내해드리겠습니다.</p>
</div>
<button type="button">클릭 </button>
<script>
$('.trigger').hover(function () {
$('.qanda .a').css('display', 'block')
}, function () {
$('.qanda .a').css('display', 'none')
})
$('button').toggle(function () {
$(this).text('클릭1회');
}, function () {
$(this).text('클릭2회')
}, function () {
$(this).text('클릭3회')
}, function () {
$(this).text('클릭4회')
})
</script>
탭 attr(속성) 메서드 활용
#tabMenu ul {
list-style: none;
overflow: hidden
}
#tabMenu ul li {
float: left;
}
img {
border: 0;
}
</style>
</head>
<body>
<div id="tabMenu">
<ul>
<li><a class="menu1" href="#"><img src="images/tab1.jpg" alt="서적" /></a></li>
<li><a class="menu2" href="#"><img src="images/tab2.jpg" alt="인쇄" /></a></li>
<li><a class="menu3" href="#"><img src="images/tab3.jpg" alt="잡지" /></a></li>
</ul>
</div>
<script>
$('.menu1 img').attr('src', 'images/tab1on.jpg')
$('.menu1').click(() => {
$('.menu1 img').attr('src', 'images/tab1on.jpg')
$('.menu2 img').attr('src', 'images/tab2.jpg')
$('.menu3 img').attr('src', 'images/tab3.jpg')
})
$('.menu2').click(() => {
$('.menu2 img').attr('src', 'images/tab2on.jpg')
$('.menu1 img').attr('src', 'images/tab1.jpg')
$('.menu3 img').attr('src', 'images/tab3.jpg')
})
$('.menu3').click(() => {
$('.menu3 img').attr('src', 'images/tab3on.jpg')
$('.menu1 img').attr('src', 'images/tab1.jpg')
$('.menu2 img').attr('src', 'images/tab2.jpg')
})
추가 예제
<style>
#tabMenu ul {
list-style: none;
overflow: hidden
}
#tabMenu ul li {
float: left;
}
#tabMenu ul li a {
display: block;
padding: 15px;
color: #333;
text-decoration: none;
transition: all .5s;
}
#tabMenu ul li .current {
background: orange;
color: #fff;
font-size: 24px;
}
img {
border: 0;
}
.tabcon div {
background: green;
width: 600px;
height: 400px;
display: none;
}
</style>
</head>
<body>
<div id="tabMenu">
<ul>
<li><a class="menu1" href="#">교육용참고서적</a></li>
<li><a class="menu2" href="#">인쇄</a></li>
<li><a class="menu3" href="#">잡지</a></li>
</ul>
</div>
<div class="tabcon">
<div>교육용</div>
<div>인쇄내용</div>
<div>잡지내용</div>
</div>
<script>
$('.menu1').addClass('current')
$('.tabcon div:eq(0)').css('display', 'block')
$('.menu1').addClass('current');
$('.tabcon div:eq(0)').css('display', 'block')
$('#tabMenu li a').each(function (index) {
$(this).on('click', function (e) {
e.preventDefault();
$('#tabMenu li a').removeClass('current');
$(this).addClass('current');
$('.tabcon div').css('display', 'none')
$('.tabcon div:eq(' + index + ')').css('display', 'block')
console.log(this, index)
})
})
</script>
토글 예제 (토글이 홀수일때,짝수일때)
<body>
<div style="width: 400px;border:1px solid #ccc; padding:10px;text-align:justify;line-height:1.5em;font-size:14px">
<p>‘하면 된다’라는 정신을 갖고 목표를 달성하기 위해 온힘을 기울이는 자세를 말한다.</p>
<a href='#' class="readmore" style="cursor:pointer">Read More...</a>
<p class="message">현대는 다른 사람들이 불가능하다고 포기해 버린 일을 험난한 여건 속에서도 강인한 정신력과 추진력으로 성공시킨 역사와 경험을 가지고 있다. 앞으로 세계 곳곳에서 사업을
수행하는데 있어서 성취해야 할 많은 과제를 과감히 헤쳐나가기 위해서는 현대인 모두가 강인한 정신과 추진력을 더욱 배양하고 체질화해야 할 것이다.</p>
</div>
<script>
$('.message').hide();
$('.readmore').toggle(function (e) {
e.preventDefault();
$('.message').show();
$(this).text('read less?')
}, function () {
$('.message').hide()
$(this).text('reade more?')
})
</script>
'javascript > jquery' 카테고리의 다른 글
네비게이션 예제 (0) | 2022.09.06 |
---|---|
시각적 효과 (0) | 2022.09.05 |
문서 조작 메서드 (0) | 2022.09.05 |
스타일 메서드 (0) | 2022.09.02 |
제이쿼리 기초 문법 (0) | 2022.09.02 |