亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

bootstrap data與jquery .data

2019-11-20 14:22:07
字體:
來源:轉載
供稿:網友

jquery官網對.data函數描述是:在匹配元素上存儲任意相關數據 或 返回匹配的元素集合中的第一個元素的給定名稱的數據存儲的值。

存儲鍵值(key/value):

  $("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 ] }

以上這些都很容易掌握和理解,今天在看bootstrap 的彈窗掩碼的時候遇到了這樣一段代碼讓我產生了疑惑

 $(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({ remote:!/#/.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">Launch demo modal</a>

我加入的代碼alert($(this).data().toggle)打印的值是modal ,所以這里只能是jquery做的文章,于是我研究了jquery的源碼發現果然真是 !

以下是jQuery.fn.data函數中的部分代碼 , 當key未定義也就是調用 .data() 未傳參數時會將屬性名為data-開頭的鍵值對存入匹配元素上。

本例中<a href="#myModal" rel="external nofollow" rel="external nofollow" role="button" class="btn" data-toggle="modal">Launch demo 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 < 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 data-* Attributes(HTML5 data-* 屬性)
從jQuery 1.4.3起, HTML 5 data- 屬性 將自動被引用到jQuery的數據對象中。嵌入式破折號處理屬性( attributes)的方式在 jQuery 1.6 中已經改變,以使之符合W3C HTML5 規范.

舉個例子, 給定下面的HTML:

<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>

下面所有的 jQuery 代碼都能運行。

$("div").data("role") === "page";$("div").data("lastValue") === 43;$("div").data("hidden") === true;$("div").data("options").name === "John"; 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产高清久久久久久| 色偷偷亚洲男人天堂| 在线观看国产精品淫| 国产91精品久久久| 国产欧美日韩中文| 日韩欧美高清在线视频| 538国产精品视频一区二区| 成人字幕网zmw| 免费不卡欧美自拍视频| 精品一区二区三区四区| 亚洲第一色中文字幕| 91在线无精精品一区二区| 亚洲国产日韩欧美综合久久| 国产精品永久在线| 揄拍成人国产精品视频| 国产精品99久久久久久久久久久久| 欧美日韩国产第一页| 亚洲欧美精品伊人久久| 97久久精品人人澡人人爽缅北| 91久久久精品| 中文字幕精品久久久久| 丝袜情趣国产精品| 日韩在线视频二区| 亚洲国产欧美一区二区丝袜黑人| 68精品国产免费久久久久久婷婷| 国产精品久久综合av爱欲tv| 欧美日韩综合视频网址| 久久亚洲电影天堂| 91久久国产精品91久久性色| 亚洲国产精品va在看黑人| 国产成人在线播放| 欧美电影免费观看大全| 亚洲国产精品成人精品| 久久免费视频这里只有精品| 久久久久国产精品www| 国产一区二区香蕉| 国产精品美女视频网站| 欧美www视频在线观看| 亚洲欧美制服另类日韩| 日韩视频欧美视频| 亚洲奶大毛多的老太婆| 中文字幕精品久久| 日韩国产精品一区| 国产日韩欧美综合| 91精品在线影院| 精品久久久久久久大神国产| 777精品视频| 精品夜色国产国偷在线| 欧美最顶级丰满的aⅴ艳星| 川上优av一区二区线观看| 久久精品国产一区二区三区| 国内精品视频一区| 国产日韩av在线播放| 久久视频在线直播| 777午夜精品福利在线观看| 精品中文字幕久久久久久| 国产精品高清网站| 国产精品精品一区二区三区午夜版| 九九九久久国产免费| 日韩在线激情视频| 欧美性xxxx18| 中文字幕亚洲综合久久| 精品香蕉在线观看视频一| 日韩视频在线观看免费| 欧美综合第一页| 在线视频欧美日韩精品| 欧美国产日韩视频| 久久久女女女女999久久| 国产综合久久久久久| 国产日本欧美一区二区三区在线| 91青草视频久久| 亚洲欧美国产va在线影院| 国产精品久久久久av| 国产精品欧美日韩久久| 亚洲精品电影网在线观看| 亚洲bt天天射| 一本色道久久88综合亚洲精品ⅰ| 亚洲香蕉在线观看| 韩国三级电影久久久久久| 久久亚洲成人精品| 精品欧美一区二区三区| 日本精品视频网站| 中文在线资源观看视频网站免费不卡| 久久久综合免费视频| 91精品综合久久久久久五月天| 国产激情视频一区| 欧美丰满少妇xxxx| 亚洲一区二区三区在线免费观看| 91国产视频在线播放| 国产欧美精品在线| 亚洲va男人天堂| 欧美成人精品在线播放| 懂色aⅴ精品一区二区三区蜜月| 国产精品久久久久久av福利| 精品视频www| 成人免费自拍视频| 青青久久aⅴ北条麻妃| 另类视频在线观看| 亚洲乱码av中文一区二区| 亚洲第一色中文字幕| 日韩欧美成人免费视频| 国产成人综合亚洲| 成人免费直播live| 国产精品自拍偷拍视频| www.99久久热国产日韩欧美.com| 精品偷拍一区二区三区在线看| 精品国产一区二区三区四区在线观看| 社区色欧美激情 | 国产亚洲一区二区精品| 亚洲性猛交xxxxwww| 亚洲欧洲一区二区三区在线观看| 5566成人精品视频免费| 亚洲日本成人女熟在线观看| 中文字幕自拍vr一区二区三区| 日韩成人在线网站| 亚洲成人久久久| 成人激情电影一区二区| 成人国产精品av| 日本乱人伦a精品| 精品无人区太爽高潮在线播放| xxav国产精品美女主播| 欧美大秀在线观看| 欧美成aaa人片在线观看蜜臀| 久久久久久噜噜噜久久久精品| 亚洲变态欧美另类捆绑| 最新国产精品亚洲| 欧美成人小视频| 日韩在线观看av| 亚洲欧美国内爽妇网| 国产一区二区激情| 日韩在线欧美在线| 国产亚洲综合久久| 日韩中文字幕久久| 91国语精品自产拍在线观看性色| 91老司机精品视频| 成人黄色影片在线| 久久久久国产精品www| 尤物九九久久国产精品的特点| 亚洲成人精品久久| 91系列在线播放| 亚洲一区二区三区毛片| 精品亚洲男同gayvideo网站| 欧美一级高清免费播放| 国产日本欧美一区二区三区在线| 亚洲黄色av女优在线观看| 精品久久中文字幕久久av| 精品亚洲一区二区三区在线观看| 欧美黄色成人网| 91精品视频观看| 日本久久久a级免费| xxx一区二区| 国产精品高潮呻吟久久av黑人| 亚洲精品国产精品国自产在线| 久久久久久有精品国产| 国产高清在线不卡| 亚洲精品久久久久国产| 亚洲影院污污.| 国产成人一区二区三区小说| 国产欧美最新羞羞视频在线观看| 精品久久久久久久久久ntr影视| 色哟哟网站入口亚洲精品| 亚洲片av在线| 亚洲人午夜精品免费| 2018中文字幕一区二区三区|