Skip to content

Commit

Permalink
Some minor edits following JSLint verification.
Browse files Browse the repository at this point in the history
  • Loading branch information
BorisMoore committed Sep 15, 2010
1 parent 3615c8f commit 71706af
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 52 deletions.
27 changes: 10 additions & 17 deletions demos/samplesCore/conditional.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,16 @@
</script>

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

{{if Languages}}

(Alternative languages: ${Languages}).

{{else Subtitles}} {{! Note that the 'else' tag with a parameter behaves as 'else if' }}

(Original language only. Subtitles in ${Subtitles}).

{{else}} {{! The 'else' tag with no parameter behaves as 'else' }}

(Original version only, without subtitles).

{{/if}}
</li>
<li>
Title: ${Name}.
{{if Languages}}
(Alternative languages: ${Languages}).
{{else Subtitles}}
(Original language only. Subtitles in ${Subtitles}).
{{else}}
(Original version only, without subtitles).
{{/if}}
</li>
</script>

<ul id="movieList"></ul>
40 changes: 20 additions & 20 deletions jquery.tmpl.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* Dual licensed under the MIT or GPL Version 2 licenses.
*/
(function( jQuery, undefined ){
var oldManip = jQuery.fn.domManip, tmplItmAtt = "_tmplitem", htmlExpr = /^[^<]*(<[\w\W]+>)[^>]*$|{{! /,
var oldManip = jQuery.fn.domManip, tmplItmAtt = "_tmplitem", htmlExpr = /^[^<]*(<[\w\W]+>)[^>]*$|\{\{\! /,
newTmplItems = {}, wrappedItems = {}, appendToTmplItems, topTmplItem = { key: 0, data: {} }, itemKey = 0, cloneIndex = 0, stack = [];

function newTmplItem( options, parentItem, fn, data ) {
Expand Down Expand Up @@ -46,24 +46,24 @@
replaceAll: "replaceWith"
}, function( name, original ) {
jQuery.fn[ name ] = function( selector ) {
var ret = [], insert = jQuery( selector ),
var ret = [], insert = jQuery( selector ), elems, i, l, tmplItems,
parent = this.length === 1 && this[0].parentNode;

appendToTmplItems = newTmplItems || {};
if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
insert[ original ]( this[0] );
ret = this;
} else {
for ( var i = 0, l = insert.length; i < l; i++ ) {
for ( i = 0, l = insert.length; i < l; i++ ) {
cloneIndex = i;
var elems = (i > 0 ? this.clone(true) : this).get();
elems = (i > 0 ? this.clone(true) : this).get();
jQuery.fn[ original ].apply( jQuery(insert[i]), elems );
ret = ret.concat( elems );
}
cloneIndex = 0;
ret = this.pushStack( ret, name, insert.selector );
}
var tmplItems = appendToTmplItems;
tmplItems = appendToTmplItems;
appendToTmplItems = null;
jQuery.tmpl.complete( tmplItems );
return ret;
Expand Down Expand Up @@ -92,15 +92,15 @@
// it should be doing .call() instead of .apply(). See #6227
if ( args[0] && args[0].nodeType ) {
var dmArgs = jQuery.makeArray( arguments ), argsLength = args.length, i = 0, tmplItem;
while ( i < argsLength && !(tmplItem = jQuery.data( args[i++], "tmplItem" ))) {};
while ( i < argsLength && !(tmplItem = jQuery.data( args[i++], "tmplItem" ))) {}
if ( argsLength > 1 ) {
dmArgs[0] = [jQuery.makeArray( args )];
}
if ( tmplItem && cloneIndex ) {
dmArgs[2] = function( fragClone ) {
// Handler called by oldManip when rendered template has been inserted into DOM.
jQuery.tmpl.afterManip( this, fragClone, callback );
}
};
}
oldManip.apply( this, dmArgs );
} else {
Expand Down Expand Up @@ -322,8 +322,8 @@
jQuery.trim(markup)
.replace( /([\\'])/g, "\\$1" )
.replace( /[\r\t\n]/g, " " )
.replace( /\${([^}]*)}/g, "{{= $1}}" )
.replace( /{{(\/?)(\w+|.)(?:\(((?:.(?!}}))*?)?\))?(?:\s+(.*?)?)?(\((.*?)\))?\s*}}/g,
.replace( /\$\{([^\}]*)\}/g, "{{= $1}}" )
.replace( /\{\{(\/?)(\w+|.)(?:\(((?:.(?!\}\}))*?)?\))?(?:\s+(.*?)?)?(\((.*?)\))?\s*\}\}/g,
function( all, slash, type, fnargs, target, parens, args ) {
var tag = jQuery.tmpl.tag[ type ], def, expr, exprAutoFnDetect;
if ( !tag ) {
Expand All @@ -342,7 +342,7 @@
expr = parens ? (target.indexOf(".") > -1 ? target + parens : ("(" + target + ").call($item" + args)) : target;
exprAutoFnDetect = parens ? expr : "(typeof(" + target + ")==='function'?(" + target + ").call($item):(" + target + "))";
} else {
exprAutoFnDetect = expr = def["$1"] || "null";
exprAutoFnDetect = expr = def.$1 || "null";
}
fnargs = unescape( fnargs );
return "');" +
Expand All @@ -355,7 +355,7 @@
params = params ? ("," + params + ")") : (parens ? ")" : "");
return params ? ("(" + name + ").call($item" + params) : all;
})
: (def["$2"]||"")
: (def.$2||"")
) +
"_.push('";
}) +
Expand All @@ -381,21 +381,21 @@

// Store template items in jQuery.data(), ensuring a unique tmplItem data data structure for each rendered template instance.
function storeTmplItems( content ) {
var keySuffix = "_" + cloneIndex, elem, elems, newClonedItems = {};
for ( var i = 0, l = content.length; i < l; i++ ) {
var keySuffix = "_" + cloneIndex, elem, elems, newClonedItems = {}, i, l, m;
for ( i = 0, l = content.length; i < l; i++ ) {
if ( (elem = content[i]).nodeType !== 1 ) {
continue;
}
elems = elem.getElementsByTagName("*");
for ( var m = elems.length - 1; m >= 0; m-- ) {
for ( m = elems.length - 1; m >= 0; m-- ) {
processItemKey( elems[m] );
}
processItemKey( elem );
}
function processItemKey( el ) {
var pntKey, pntNode = el, pntItem, tmplItem, key;
// Ensure that each rendered template inserted into the DOM has its own template item,
if ( key = el.getAttribute( tmplItmAtt )) {
if ( (key = el.getAttribute( tmplItmAtt ))) {
while ((pntNode = pntNode.parentNode).nodeType === 1 && !(pntKey = pntNode.getAttribute( tmplItmAtt ))) { }
if ( pntKey !== key ) {
// The next ancestor with a _tmplitem expando is on a different key than this one.
Expand Down Expand Up @@ -423,8 +423,9 @@
}
if ( tmplItem ) {
pntItem = tmplItem;
// Find the template item of the parent element
while ( pntItem && pntItem.key != pntNode ) {
// Find the template item of the parent element.
// (Using !=, not !==, since pntItem.key is number, and pntNode may be a string)
while ( pntItem && pntItem.key != pntNode ) {
// Add this element as a top-level node for this rendered template item, as well as for any
// ancestor items between this item and the item of its parent element
pntItem.nodes.push( el );
Expand All @@ -438,8 +439,8 @@
}
function cloneTmplItem( key ) {
key = key + keySuffix;
tmplItem = newClonedItems[key]
= (newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent, null, true ));
tmplItem = newClonedItems[key] =
(newClonedItems[key] || newTmplItem( tmplItem, newTmplItems[tmplItem.parent.key + keySuffix] || tmplItem.parent, null, true ));
}
}
}
Expand All @@ -450,7 +451,6 @@
if ( !content ) {
return stack.pop();
}
var l = stack.length;
stack.push({ _: content, tmpl: tmpl, item:this, data: data, options: options });
}

Expand Down
31 changes: 16 additions & 15 deletions jquery.tmplPlus.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,25 @@
tmplItem.rendered( tmplItem );
}
}
}
};

jQuery.extend({
tmplCmd: function( command, data, tmplItems ) {
var retTmplItems = [], before;
function find( data, tmplItems ) {
var found = [], tmplItem, ti, tl = tmplItems.length, dataItem, di = 0, dl = data.length;
for ( ; di < dl; ) {
dataItem = data[di++];
for ( ti = 0; ti < tl; ) {
tmplItem = tmplItems[ti++];
if ( tmplItem.data === dataItem ) {
found.push( tmplItem );
}
}
}
return found;
}

data = jQuery.isArray( data ) ? data : [ data ];
switch ( command ) {
case "find":
Expand Down Expand Up @@ -54,19 +68,6 @@
}
});
return retTmplItems;
function find( data, tmplItems ) {
var found = [], tmplItem, ti, tl = tmplItems.length, dataItem, di = 0, dl = data.length;
for ( ; di < dl; ) {
dataItem = data[di++];
for ( ti = 0; ti < tl; ) {
tmplItem = tmplItems[ti++];
if ( tmplItem.data === dataItem ) {
found.push( tmplItem );
}
}
}
return found;
}
}
});

Expand All @@ -83,7 +84,7 @@
dmArgs[2] = function( fragClone ) {
// Handler called by oldManip when rendered template has been inserted into DOM.
jQuery.tmpl.afterManip( this, fragClone, callback );
}
};
return oldManip.apply( this, dmArgs );
}
return oldManip.apply( this, arguments );
Expand Down

0 comments on commit 71706af

Please sign in to comment.