jQuery에서 데이터 방법의 실현 원리
10763 단어 jquery
데이터 () 사용 방법
// dom
$("#header").data("aaa", 123); // header key "aaa",value 123
$("#header").data({"name": "xiaoming", "age": 20}); //
//
$("#header").data("aaa"); // header key "aaa" , cache ( ) , html 5 data-*, cache
$("#header").data(); // header
//
$("#header").removeData("name"); // header key name
$("#header").removeData(); // header
원본 코드에서 데이터 () 방법과 관련된 코드
jQuery.extend({
// , dom
cache: {},
// , cleanData , id
deletedIds: [],
// (1.9/2.0)
uuid: 0,
// jQuery , jQuery ( jQuery) , : jQuery164018232414545491338, + +
expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
// ,
noData: {
"embed": true,
// flash object
"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
"applet": true
},
//
hasData: function( elem ) { },
// ( pvt false , cache id data ,pvt true cache id , data 。jQuery events、handle _data pvt true )
data: function( elem, name, data, pvt /* */ ) { },
//
removeData: function( elem, name, pvt /* */ ) { },
// ,
_data: function( elem, name, data ) { },
// dom
acceptData: function( elem ) { },
// jQuery
cleanData: function( elems, /* internal */ acceptData ) { }
});
jQuery.fn.extend({
//
data: function( key, value ) { },
//
removeData: function( key ) { }
});
// html5 data-* 。 cache data-* , data-* cache 。
function dataAttr( elem, key, data ) { }
// cache , data ,
function isEmptyDataObject( obj ) { }
jQuery.extend 및 jQuery.fn.extend의 차이점은 다음과 같습니다.
jQuery.extend는 jQuery라는 구조 함수에서 확장하는 방법으로 호출할 때 $로 씁니다.xxx 또는 jQuery.xxx
jQuery.fn.extend는 jQuery 원형에서 확장하는 방법입니다. 원형의 방법은 모든 jQuery 대상에 공유되며, 호출할 때 $() 입니다.xxx
원소에 연결된 데이터의 저장 형식
$("#header").data("title", "hello world");
// $.cache
{
1: {
data: {
title : "hello world"
}
}
}
// header , "jQuery18102873769768048078: 1" key jQuery ,1 header cache , 1,
$("#footer").data("foot", "goodbye");
// $.cache
{
1: {
data: {
title : "hello world"
}
},
2: {
data: {
foot : "goodbye"
}
}
}
// footer "jQuery18102873769768048078: 2"
원소에 연결된 이벤트 처리 프로그램도cache 대상에 저장됩니다
$("#header").click(function(){});
// ,$.cache
{
1: {
data : {
title : "hello world"
},
events : {
click : [] // click
},
handle : function(){ } // function
}
2: {
data : {
foot : "goodbye"
}
}
}
// dom , events handle ,jQuery cache
전역 대상cache를 통해dom 요소에 연결된 데이터를 저장하면dom 대상과 js 대상 간의 상호 인용으로 인한 순환 인용 문제를 피할 수 있습니다.
데이터 () 방법 관련 이벤트
데이터 () 방법과 관련된 이벤트는 getData, setData,changeData가 있는데 사용 방법은 코드를 보십시오
$("#header").bind("getData" ,function(){
console.log("getData");
})
.bind("setData" , function(){
console.log("setData");
})
.bind("changeData" , function(){
console.log("changeData");
});
$("#header").data("name" , "Austin"); // "setData" "changeData"
$("#header").data("name"); // "getData"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jQuery 전후 예이 기사에서는 jquery after() 및 before() 메소드의 예를 볼 것입니다. before() 메서드는 선택한 요소 앞에 지정된 콘텐츠를 삽입합니다. after() 메서드는 선택한 요소 뒤에 지정된 콘텐츠...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.