1

我一直在努力使用以下功能:

$('#pageName').on('pagebeforecreate', function() {
  // Compile the page using Handlebars
});

然后我尝试切换onlive,尽管 jQuery 文档说不live推荐使用。现在一切正常。是什么赋予了?

4

2 回答 2

3

这发生在我身上几次,它与我的元素在执行 javascript 后动态生成有关。

尝试这个:

$('body').on('pagebeforecreate', '#pageName', function() {
    // Compile the page using Handlebars
});

你会想要使用一个更好的父元素,body但选择一个不会改变的元素。

于 2012-12-21T00:50:05.533 回答
2

.on()使用委托的语法(即元素 DOM 层次结构处理发生在其后代上的事件)与您使用的语法不同。(参见http://api.jquery.com/on/#direct-and-委托事件

$('container-of-#pageName').on('pagebeforecreate','#pageName', function() {
  // Compile the page using Handlebars
});

当然,您需要更改container-of-#pageName为一个选择器,它是#pageName.


如果你不能这样做,那么你可以使用bodyand 这将完全模仿.live()但不建议这样做

$('body').on('pagebeforecreate','#pageName', function() {
  // Compile the page using Handlebars
});
于 2012-12-21T00:49:50.210 回答