Framework7启动页面“pageInit”不工作

时间:2014-04-07 04:23:58

标签: mobile-safari

任何使用framework7创建移动网站的人?我发现它很棒并且试图自己学习它,现在我遇到了这个问题,在我创建我的应用程序后,我想在首页初始化上做一些事情,在这里,我的首页是索引.html,我设置data-page =“index”,现在我写下面这个:

$$(document).on('pageInit', function (e) {
      var page = e.detail.page;
      // in my browser console, no "index page" logged
      if (page.name === 'index') {
       console.log("index page");
      });
     // but I changed to any other page other than index, it works
     // my browser logged "another page"
     if(page.name === 'login') {
       console.log('another page');
     }
 });

任何人都可以提供帮助?非常感谢你。

3 个答案:

答案 0 :(得分:2)

之前我也遇到过同样的问题。

PageInit事件不适用于初始页面,仅适用于您导航到的页面,如果您导航到其他页面然后返回索引页面,它将仅适用于索引页面。

所以我在这里看到两个选项:

  1. 只是不要将pageInit事件用于索引页面 - 只需初始化一次(只需确保在所有html准备就绪之后放置此javascript,或者例如在文档就绪事件中使用jquery)< / LI>
  2. 最初将索引页面保留为空并通过Framework7的mainView.loadContent方法动态加载它,然后pageInit事件将适用于它(这对我来说是个不错的选择,因为我有不同的索引页面每次,我已经从下划线模板动态加载所有其他页面)

答案 1 :(得分:0)

我面临同样的问题并在各种论坛中尝试了所有解决方案..没有任何实际工作。但经过很多RnD我偶然发现了以下解决方案......

var $$ = Dom7;
$$(document).on('page:init', function (e) {
    if(e.detail.page.name === "index"){
        //do whatever.. remember "page" is now e.detail.page..
                $$(e.detail.page.container).find('#latest').html("my html here..");
    }
});
    
var me = new Framework7({material: true});
var mainview = me.addView('.view-main', {});
.... and whatever else JS here..

这很完美.. 令人惊讶的是,你可以在初始化之前使用“我”。

答案 2 :(得分:-1)

用于第一页,您最好使用文档就绪事件。并且对于重新加载页面事件,您最好使用Reinit事件。 如果jquery使用过。

newSTRef :: a -> ST s (STRef s a)
readSTRef :: STRef s a -> ST s a
writeSTRef :: STRef s a -> a -> ST s () 
...