我在页面中注入了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/

最佳答案

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

改用window(将window对象本身用jQuery包裹,不要尝试选择<window>元素)。

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


See an example

07-24 14:20