大家可能會(huì)經(jīng)常看到一些HTML里都帶有data屬性,這些都是HTML5的自定義屬性,下面為大家簡(jiǎn)單介紹一下使用方法,希望對(duì)你有所幫助
大家可能會(huì)經(jīng)常看到一些HTML里都帶有data屬性,這些都是HTML5的自定義屬性,可以做很多事情,直接調(diào)用JS十分方便,雖然是HTML5的屬性,但好在jQuery通用的,所以基本在所有瀏覽器里都是可以正常使用的,包括低版本的IE。下面為大家簡(jiǎn)單介紹一下使用方法:
1、簡(jiǎn)單使用
代碼如下:
<div id="widget" data-text="123456"></div>
代碼如下:
$(function(){
var _widget= $("#widget").attr("data-text"); alert(_widget);//因?yàn)閐ata-text="123456",所以打印出123456
})
2、配合$.fn.extend使用,編寫(xiě)插件
代碼如下:
<div id="widget" data-widget-config="{effect:'click'}">這里是測(cè)試區(qū)域</div>
代碼如下:
//插件擴(kuò)展部分
;(function($){
$.fn.extend({
Test:function(config){
/**
* @param effect 效果
* config||{} 當(dāng)有自定義屬性傳進(jìn)來(lái)時(shí)不執(zhí)行默認(rèn)值
*/
// 設(shè)置默認(rèn)值
config=$.extend({
effect:'click',
},config||{});
var effect=config.effect;
var _text=config._text;
if(effect=='click'){
$(this).click(function(){
alert('this click');
})
}else if(effect=='mouseover'){
$(this).mouseover(function(){
alert("this is mouseover");
})
}
}
})
})(jQuery)
代碼如下:
//調(diào)用部分,HTML中的data屬性依賴于此
$(function(){
var _widget= $("#widget").attr("data-widget-config");
// 將string轉(zhuǎn)換成json對(duì)象的方法,有兩種
var widgetConfigJSON=eval("("+_widget+")");
// var widgetConfigJSON = (new Function("return " + _widget))();
$("#widget").Test(widgetConfigJSON);
//因?yàn)镠TML中data屬性是data-widget-config="{effect:'click'}",所以這里會(huì)調(diào)用點(diǎn)擊事件,
如果是data-widget-config="{effect:'mouseover'}",則調(diào)用鼠標(biāo)移上去的事件})