Skip to content

Instantly share code, notes, and snippets.

@s-aska
Created July 20, 2011 14:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save s-aska/1095068 to your computer and use it in GitHub Desktop.
Save s-aska/1095068 to your computer and use it in GitHub Desktop.
initElements
function initElements(context) {
$('*[data-init]', context).each(function(){
var ele = $(this);
var methods = ele.data('init').split(',');
for (var i = 0, max_i = methods.length; i < max_i; i++) {
app.exec(['initElement', methods[i]], [this]);
}
});
}
function initElementClick(element) {
element.addEventListener("click", app, false);
}
function initElementLocalize(element) {
var ele = $(element);
ele.text(ele.data('text-' + c.lang));
}
// ...
function handleEvent(e) {
var ele = $(e.currentTarget);
if (ele.data('bind')) {
e.stopPropagation();
}
app.exec(ele.data('bind') + 'Click', [e, ele])
}
// ...
function exec(method, args) {
if ($.isArray(method)) {
method = method[0] + c.capitalize(method[1]);
}
if (method in app) {
app[method].apply(app, args);
} else {
console.log('unkown method ' + method);
}
}
// ...
<div class="comment"
data-init="click,localize,guide"
data-bind="openComment"
data-id="comment-window"
data-guide-en="Write a comment."
data-guide-ja="コメントする"
data-text-ja="コメント"
>
comment</div>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment