jQuery.parseJSON()
$.parseJSON , jQuery.parseJSON
끝...
$.parseJSON , jQuery.parseJSON
끝...
jQuery event Binding.
어떤 요소들에 이벤트를 등록하는 작업을 binding 이라 합니다. 그렇게 하면 이벤트 리스너는 자바스크립트 해석기에 어떤 함수를 넘겨줘야 할지 알게 됩니다. 두 가지 방법으로 요소에 이벤트를 등록할 수 있습니다.
1. 페이지를 불러올 때는 이런 방법으로 요소에 이벤트를 등록할 수 있습니다.
이런 방법을 단축 mothod 라고 합니다.
$("#myElement").click(function(){
alert($(this).text());
});
2. 이 방법도 첫번째 방법과 마찬가지지만, DOM 요소를 새로 만들었을 때처럼 페이지를 불러온뒤에 추가된 요소에도 이벤트 리스너를 등록할 수 있습니다.
$("#myElement").bind('click', function(){
alert($(this).text());
});
첫 번째 방법은 두 번째 방법의 단축 mothod 지만 DOM 요소가 이미 존재할 때만 쓸 수 있습니다. jQuery 에는 이런 단축 method 가 많아서 코드를 깔끔하게 쓸 수 있습니다. 하지만 단축 method 에는 한계가 있습니다. 클릭할 수 있는 이미지를 추가했거나 대화형 목록에 항목을 추가하는 등 코드로 DOM 요소를 추가했다면 두 번째 방법을 사용해야 합니다.
1. jQuery ready() Method
ready()는 기본적으로 Dom 이 준비된 이후에 또는 Dom이 완전히 로드되었을 때 실행되는 함수입니다. window.onload 와의 차이는 window.onload 는 페이지의 모든 자원들이 로드된 후 실행되므로 ready() 를 사용했을 때 Dom 이후에 다운되는 자원에 대한 접근을 하게 되면 오류?가 발생할 수 있다는 점을 알고 있어야 할 것입니다.
보통의 Dom 이라면 <body></body> 안에 존재할 것이기 때문에 jquery 를 사용하는 스크립트를 <body></body> 안의 하단에서 사용한다면 ready() 를 굳이 사용하지 않아도 같은 방법이 될 것입니다. 그리고 평균적으로 스크립트를 페이지 하단에 심는게 속도면에서 좋기 때문에 좀 더 나은 사용방법이라 말 할 수 있을 것 같습니다.
<참조>
- http://www.w3schools.com/jquery/event_ready.asp
- http://api.jquery.com/ready/
1. jQuery 란?.
jQuery 란?
- jQuery 는 자바스크립트 라이브러리로 html 코드로부터 자바스크립트를 분리하기 위한 unobtrusive 자바스크립트 입니다.
브라우저와 자바스크립트.
- 기본적으로 브라우저의 레이아웃 엔진이 html 과 css를 읽어본 다음에 html dom 을 사용해서 document 를만듭니다.
- 자바스크립트는 웹 페이지를 바꿀 때 dom을 참조하므로 페이지를 새로고침하지 않아도 됩니다.
- 자바스크립트 인터프리터는 원래 있던 html 과 css 파일을 바꾸지 않습니다. 단지 브라우저 메모리에 들어 있는 페이지의 dom 표현을 바꾸는 겁니다.
jQuery 의 기초.
- jQuery() 는 $() 와 동일합니다. () 안에는 html 문자열, css 선택자(selector), 자바스크립트객체가 들어갈 수 있습니다.
jQuery |
JavaScript |
$(document).ready(function(){ // code.. }); |
document.addEventListener("DOMContentLoaded", function(){ // code ... }); |
var divs = $("div"); |
var divs = document.querySelectorAll("div"); |
var newDiv = $("<div/>"); |
var newDiv = document.createElement("div"); |
newDiv.addClass("foo"); |
newDiv.classList.add("foo"); |
newDiv.toggleClass("foo"); |
newDiv.classList.toggle("foo"); |
$("a").click(function() { // code…
}) |
[].forEach.call(document.querySelectorAll("a"), function(el) { el.addEventListener("click", function() {
// code…
});
}); |
$("body").append($("<p/>")); |
document.body. |
$("img").filter(":first"). |
document.querySelector("img"). |
var parent = $("#about").parent(); |
var parent = document.getElementById("about").parentNode; |
$("#wrap").empty(); |
var wrap = document.getElementById("wrap");
while(wrap.firstChild) wrap.removeChild(wrap.firstChild); |
if($("#wrap").is(":empty")) |
if(!document.getElementById("wrap").hasChildNodes()) |
var nextElement = $("#wrap").next(); |
var nextElement = document.getElementById("wrap").nextSibling; |