为什么.on('load',function)不能用于JS模板?

时间:2013-07-07 16:01:02

标签: javascript jquery handlebars.js mustache

我在我的页面中注入了mustachejs模板,然后我有一个函数来触发这些模板。

JS这样:

function loadToggleCSS() {
    console.log("loadToggleCSS : fired!");
    $("button").toggleClass('status0').toggleClass('status1');
    console.log("loadToggleCSS : finished!");
}

$('body').on('load', loadToggleCSS); // <------ this doesn't fire on template

loadToggleCSS(); //  <------------------------- this DOES fire!

有人可以解释为什么第一次失败。

小提琴:http://jsfiddle.net/RXe2t/15/

1 个答案:

答案 0 :(得分:4)

<body>元素没有(直接)加载外部内容,因此它没有load个事件。

使用window代替(使用jQuery包装window对象本身,不要尝试选择<window>元素。)

$(window).on('load', loadToggleCSS);

See an example