웹 프론트엔드 JS 튜토리얼 부트스트랩 데이터与jquery .data_jquery

부트스트랩 데이터与jquery .data_jquery

May 16, 2016 pm 04:42 PM
bootstrap data jquery

jquery 공식 웹사이트에서는 .data 함수에 대해 다음과 같이 설명합니다. 일치하는 요소에 관련 데이터를 저장하거나 일치하는 요소 집합에서 첫 번째 요소의 지정된 이름 데이터에 저장된 값을 반환합니다.

저장소 키/값:

  $("body").data("foo", 52);
  $("body").data("bar", { myType: "test", count: 40 });
  $("body").data({ baz: [ 1, 2, 3 ] });
로그인 후 복사


키 값 가져오기

  $("body").data("foo"); // 52
  $("body").data(); // { foo: 52, bar: { myType: "test", count: 40 }, baz: [ 1, 2, 3 ] }
로그인 후 복사

위 내용은 익히기 쉽고 이해하기 쉽습니다. 오늘 부트스트랩 팝업마스크를 보다가 이런 코드를 접하게 되었는데

 $(document).on('click.modal.data-api', '[daTa-toggle="modal"]', function (e) {
  alert($(this).data().toggle) //这行是我加入的代码 打印的值是modal
  var $this = $(this)
   , href = $this.attr('href')
   , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
   , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())  
  e.preventDefault()
  $target
   .modal(option)
   .one('hide', function () {
    $this.focus()
   })
 })

로그인 후 복사

코드의 삼항 연산자 $target.data('modal')?'toggle': $.extend({ 원격:!/#/.test(href) && href }, $target.data() , $ this.data())

은 창이 처음으로 렌더링되는지 여부를 확인하는 것입니다. 창을 처음 렌더링할 때 실행

option = $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data()) //结果是 option= {remote: false,toggle: "modal"}
로그인 후 복사

$target.data()는 빈 객체 {}이고, $this.data()의 값은 {toggle: "modal"}입니다. 여기서 $this.data()의 반환 값이

에서 나오는 것은 말할 필요도 없습니다.

html 코드를 보면 click 메소드가 바인딩된 dom 객체의 속성값과 일치하는 것을 볼 수 있습니다. 다음은 바인딩된 dom 객체의 html 코드입니다

<a href="#myModal" rel="external nofollow" rel="external nofollow" role="button" class="btn" data-toggle="modal">데모 모달 실행</a>

내가 추가한 경고($(this).data().toggle) 코드에서 출력되는 값은 모달이므로 jquery로 만든 기사일 수밖에 없어서 jquery 소스코드를 연구한 결과, 정말 사실이에요!

다음은 jQuery.fn.data 함수의 코드 일부입니다. 키가 정의되지 않은 경우, 즉 매개변수 전달 없이 .data()를 호출하면 속성 이름이 data-는 일치하는 요소에 저장됩니다.

이 경우<a href="#myModal" rel="external nofollow" rel="external nofollow" role="button" class="btn" data-toggle="modal">데모 모달 실행< a>, {toggle:"modal"} 키-값 쌍을

에 저장합니다.

관심 있는 학생들은 다음 jquery 코드를 사용해 볼 수 있습니다

    // Gets all values
    if ( key === undefined ) {
      if ( this.length ) {
        data = jQuery.data( elem );
        if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
          attrs = elem.attributes;
          for ( ; i &lt; attrs.length; i++ ) {
            name = attrs[i].name;
            if ( name.indexOf("data-") === 0 ) {
              name = jQuery.camelCase( name.slice(5) );

              dataAttr( elem, name, data[ name ] );
            }
          }
          jQuery._data( elem, "parsedAttrs", true );
        }
      }
      return data;
    }

로그인 후 복사

jquery 공식 홈페이지의 도움말 문서를 자세히 읽어보니 다음과 같은 구절이 있습니다
HTML5 데이터-* 속성(HTML5 데이터-* 속성)
jQuery 1.4.3부터 HTML 5 data- 속성은 jQuery의 데이터 객체에 자동으로 참조됩니다. 포함된 대시가 속성을 처리하는 방식은 W3C HTML5 사양을 준수하기 위해 jQuery 1.6에서 변경되었습니다.

예를 들어 다음 HTML이 있다고 가정합니다.

&lt;div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'&gt;&lt;/div&gt;
로그인 후 복사

아래의 모든 jQuery 코드가 작동합니다.

$("div").data("role") === "page";
$("div").data("lastValue") === 43;
$("div").data("hidden") === true;
$("div").data("options").name === "John"; 
로그인 후 복사

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Eclipse에 부트스트랩을 도입하는 방법 Eclipse에 부트스트랩을 도입하는 방법 Apr 05, 2024 am 02:30 AM

Eclipse에 부트스트랩을 도입하는 방법

부트스트랩에 아이디어를 도입하는 방법 부트스트랩에 아이디어를 도입하는 방법 Apr 05, 2024 am 02:33 AM

부트스트랩에 아이디어를 도입하는 방법

대형모델간 75만 라운드 1대1 대결, GPT-4가 우승, 라마3가 5위 대형모델간 75만 라운드 1대1 대결, GPT-4가 우승, 라마3가 5위 Apr 23, 2024 pm 03:28 PM

대형모델간 75만 라운드 1대1 대결, GPT-4가 우승, 라마3가 5위

부트스트랩 매개 효과 테스트 결과를 Stata에서 읽는 방법 부트스트랩 매개 효과 테스트 결과를 Stata에서 읽는 방법 Apr 05, 2024 am 01:48 AM

부트스트랩 매개 효과 테스트 결과를 Stata에서 읽는 방법

부트스트랩과 스프링부트의 차이점은 무엇입니까 부트스트랩과 스프링부트의 차이점은 무엇입니까 Apr 05, 2024 am 04:00 AM

부트스트랩과 스프링부트의 차이점은 무엇입니까

부트스트랩을 사용하여 중재 효과를 테스트하는 방법 부트스트랩을 사용하여 중재 효과를 테스트하는 방법 Apr 05, 2024 am 03:57 AM

부트스트랩을 사용하여 중재 효과를 테스트하는 방법

부트스트랩 조정 테스트 결과를 읽는 방법 부트스트랩 조정 테스트 결과를 읽는 방법 Apr 05, 2024 am 03:30 AM

부트스트랩 조정 테스트 결과를 읽는 방법

부트스트랩 테스트 조정 효과 stata 명령의 결과를 내보내는 방법 부트스트랩 테스트 조정 효과 stata 명령의 결과를 내보내는 방법 Apr 05, 2024 am 03:39 AM

부트스트랩 테스트 조정 효과 stata 명령의 결과를 내보내는 방법

See all articles