最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery .tmpl() 用法示例介紹

 更新時(shí)間:2014年08月21日 11:22:43   投稿:whsnow  
解決 PHP 拼數(shù)據(jù)這方面的問(wèn)題而有了 Smarty 這些模版,JavaScript 也可以利用模版來(lái)解決這些問(wèn)題,比如基于 jQuery 的 jquery.tmpl

動(dòng)態(tài)請(qǐng)求數(shù)據(jù)來(lái)更新頁(yè)面是現(xiàn)在非常常用的方法,比如博客評(píng)論的分頁(yè)動(dòng)態(tài)加載,微博的滾動(dòng)加載和定時(shí)請(qǐng)求加載等。

這些情況下,動(dòng)態(tài)請(qǐng)求返回的數(shù)據(jù)一般不是已拼好的 HTML 就是 JSON 或 XML,總之不在瀏覽器端拼數(shù)據(jù)就在服務(wù)器端拼數(shù)據(jù)。不過(guò),從傳輸量方面來(lái)看,返回 HTML 不劃算,而在 web 傳輸方面,現(xiàn)在更多的是使用 JSON 而不是 XML。

瀏覽器端根據(jù) JSON 生成 HTML 有個(gè)很苦惱的地方就是,結(jié)構(gòu)不復(fù)雜的時(shí)候還好,結(jié)構(gòu)一復(fù)雜,就想死了,需要很小心很小心地寫出幾乎無(wú)法維護(hù)的 JavaScript 代碼。

如同為解決 PHP 拼數(shù)據(jù)這方面的問(wèn)題而有了 Smarty 這些模版,JavaScript 也可以利用模版來(lái)解決這些問(wèn)題,比如基于 jQuery 的 jquery.tmpl,現(xiàn)在已經(jīng)被接受為官方的模版插件了。詳細(xì)的 API 在 jQuery 的 Templates 里,內(nèi)置的 demo 也盡情地演示了各種用法。

就我自己的幾次使用,感覺(jué)很不錯(cuò),用更加直觀方面的 HTML 寫法而不是 JavaScript 拼湊 來(lái)寫結(jié)構(gòu),然后用 JSON 變量來(lái)占位的方式來(lái)填充數(shù)據(jù),代碼看起來(lái)好多了。

Tmpl提供了幾種tag:

${}:等同于{{=}},是輸出變量,通過(guò)了html編碼的。
{{html}}:輸出變量html,但是沒(méi)有html編碼,適合輸出html代碼。
{{if }} {{else}}:提供了分支邏輯。
{{each}}:提供循環(huán)邏輯,$value訪問(wèn)迭代變量。

jquery tmpl的使用方法:

模板定義:

方法一:

<script id="movieTemplate" type="text/x-jquery-tmpl"> 
<li> 
<b>${Name}</b> (${ReleaseYear}) 
</li> 
</script>

方法二:

function makeTemplate(){ 
var markup='<li><b>${Name}</b> (${ReleaseYear})</li>‘; 
$.template(“movieTemplate”, markup); 
}

DATA:

var movies = [ 
{ Name: "The Red Violin", ReleaseYear: "1998" }, 
{ Name: "Eyes Wide Shut", ReleaseYear: "1999" }, 
{ Name: "The Inheritance", ReleaseYear: "1976" } 
];

Script:

$( "#movieTemplate" ).tmpl( movies ) 
.appendTo( "#movieList" );

實(shí)例1:

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://code.jquery.com/jquery-latest.min.js"></script> 
<script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script> 
</head> 
<body> 

<ul class="param-list"></ul> 

<script type="text/x-jquery-tmpl" id="new-param-tmpl"> 
<li rel="${num}"> 
<input type="text" name="key[${num}]" value="${key}" placeholder="key" /> = 
<input type="text" name="value[${num}]" value="${value}" placeholder="value" /> 
<button type="button" class="button small remove-param"><img src="http://mediacdn.disqus.com/1338845651/images/v3/icon/16/69.png" height="12" alt=""/></button> 
<button type="button" class="button small add-param"><span><img src="http://mediacdn.disqus.com/1338845651/images/v3/icon/16/13.png" height="12" alt=""/></button> 
</li> 
</script> 

<script> 
$(function(){ 
function addParam(key, value) { 
var param_list = $('.param-list'); 
var num = param_list.find('li').length; 

// build a template to clone the current row 
var built = $('#new-param-tmpl').tmpl({ 
num: num, 
key: key || '', 
value: value || '', 
}); 
if (key) param_list.prepend(built); 
else param_list.append(built); 

param_list.find('li:not(:last) .add-param').hide(); 
param_list.find('li:last .add-param').show(); 
param_list.find('li:not(:last) .remove-param').show(); 
param_list.find('li:last .remove-param').hide(); 
} 

// bind events 
$('.param-list .remove-param').live('click', function(){ 
$(this).parent().remove(); 
return false; 
}); 
$('.param-list .add-param').live('click', function(){ 
addParam(); 
return false; 
}); 

addParam(); 
})
</script> 
</body> 
</html>

實(shí)例2

<ul id="movieList"></ul> 

<script id="movieTemplate" type="text/x-jquery-tmpl"> 
<li><b>${Name}</b> (${ReleaseYear})</li> 
</script> 

<script type="text/javascript"> 
var movies = [ 
{ Name: "The Red Violin", ReleaseYear: "1998" }, 
{ Name: "Eyes Wide Shut", ReleaseYear: "1999" }, 
{ Name: "The Inheritance", ReleaseYear: "1976" } 
]; 

// Render the template with the movies data and insert 
// the rendered HTML under the "movieList" element 
$( "#movieTemplate" ).tmpl( movies ) 
.appendTo( "#movieList" ); 
</script>

相關(guān)文章

  • jQuery Migrate 1.1.0 Released 注意事項(xiàng)

    jQuery Migrate 1.1.0 Released 注意事項(xiàng)

    jQuery開發(fā)團(tuán)隊(duì)前一段時(shí)間發(fā)布了jQuery 1.9版本,刪除了1.8版本中的部分API,為了使前端開發(fā)者能夠順利遷移至該版本,該團(tuán)隊(duì)還發(fā)布了遷移插件jQuery Migrate
    2014-06-06
  • jQuery的deferred對(duì)象使用詳解

    jQuery的deferred對(duì)象使用詳解

    jQuery的開發(fā)速度很快,幾乎每半年一個(gè)大版本,每?jī)蓚€(gè)月一個(gè)小版本。每個(gè)版本都會(huì)引入一些新功能。今天我想介紹的,就是從jQuery 1.5.0版本開始引入的一個(gè)新功能----deferred對(duì)象。
    2011-08-08
  • JS Canvas定時(shí)器模擬動(dòng)態(tài)加載動(dòng)畫

    JS Canvas定時(shí)器模擬動(dòng)態(tài)加載動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了JS Canvas定時(shí)器模擬動(dòng)態(tài)加載動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • jQuery中ajax的load()方法用法實(shí)例

    jQuery中ajax的load()方法用法實(shí)例

    這篇文章主要介紹了jQuery中ajax的load()方法用法,以實(shí)例形式較為詳細(xì)的分析了load()方法的功能、參數(shù)及使用技巧,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • 根據(jù)Bootstrap Paginator改寫的js分頁(yè)插件

    根據(jù)Bootstrap Paginator改寫的js分頁(yè)插件

    本文主要對(duì)根據(jù)Bootstrap Paginator改寫的js插件進(jìn)行詳細(xì)介紹,具有很好的參考價(jià)值,需要的朋友一起來(lái)看下吧
    2016-12-12
  • jQuery中parentsUntil()方法用法實(shí)例

    jQuery中parentsUntil()方法用法實(shí)例

    這篇文章主要介紹了jQuery中parentsUntil()方法用法,實(shí)例分析了parentsUntil()方法的功能、定義及根據(jù)條件查找匹配元素的所有的祖先元素使用技巧,需要的朋友可以參考下
    2015-01-01
  • jQueryUI中的datepicker使用方法詳解

    jQueryUI中的datepicker使用方法詳解

    JqueryUI作為一個(gè)優(yōu)秀的前端庫(kù),在項(xiàng)目中經(jīng)常會(huì)用到,下面小編抽點(diǎn)時(shí)間給大家介紹jQueryUI中的datepicker使用方法詳解,一起看看吧
    2016-05-05
  • jQuery中offsetParent()方法用法實(shí)例

    jQuery中offsetParent()方法用法實(shí)例

    這篇文章主要介紹了jQuery中offsetParent()方法用法,實(shí)例分析了offsetParent()方法的功能、定義及返回匹配元素所有祖先元素中第一個(gè)采用定位的祖先元素時(shí)的使用技巧,需要的朋友可以參考下
    2015-01-01
  • 使用jQuery+HttpHandler+xml模擬一個(gè)三級(jí)聯(lián)動(dòng)的例子

    使用jQuery+HttpHandler+xml模擬一個(gè)三級(jí)聯(lián)動(dòng)的例子

    昨天同學(xué)問(wèn)我有關(guān)如何快速讀取多層級(jí)xml文件的問(wèn)題,于是我就使用省、市、縣模擬了一個(gè)三級(jí)聯(lián)動(dòng)的例子,客戶端使用jQuery實(shí)現(xiàn)異步加載服務(wù)器返回的json數(shù)據(jù),服務(wù)器端則使用XPath表達(dá)式查詢數(shù)據(jù)。
    2011-08-08
  • EasyUI中combobox默認(rèn)值注意事項(xiàng)

    EasyUI中combobox默認(rèn)值注意事項(xiàng)

    這篇文章主要介紹了EasyUI中combobox默認(rèn)值注意事項(xiàng),是個(gè)人在項(xiàng)目中遇到并解決的事宜,分享給大家,需要的朋友可以參考下
    2015-03-03

最新評(píng)論

隆子县| 怀安县| 离岛区| 龙岩市| 阳朔县| 南木林县| 淮南市| 临颍县| 上高县| 崇阳县| 海盐县| 特克斯县| 涿州市| 普安县| 永泰县| 张掖市| 永安市| 汽车| 奉节县| 黑龙江省| 顺义区| 海阳市| 界首市| 金阳县| 肃南| 民权县| 昌都县| 郸城县| 海晏县| 化德县| 蒙阴县| 和静县| 垣曲县| 赤峰市| 庐江县| 分宜县| 巧家县| 正定县| 遵化市| 临漳县| 吉木萨尔县|