JS не работает после перехода на перенаправленную страницу

В настоящее время я использую PhoneGap и Framework 7 в качестве материала для самообучения.

Но я заметил, что после того, как я перехожу на перенаправленную страницу, все, что написано в моем файле.JS, больше не работает (например, предупреждение при нажатии кнопки, загрузка Google Map и т. Д.).

На странице индекса все работало нормально. Кроме того, в Framework7 v1 он мог использовать app.onPageInit в качестве решения для выполнения JS, когда страница инициализируется, для v2 я не смог этого добиться.

app.js

// Framework7 App main instance
var app  = new Framework7({

  root: '#app', // App root element
  id: 'io.framework7.testapp', // App bundle ID
  name: 'Framework7', // App name
  theme: 'auto', // Automatic theme detection
  // App root data
  data: function () {
    return {
      user: {
        firstName: 'John',
        lastName: 'Doe',
      },
    };
  },
  // App root methods
  methods: {
    helloWorld: function () {
      app.dialog.alert('Hello World!');
    },
  },
  touch: {
    tapHold: true //enable tap hold events
  },  
  // App routes
  routes: routes,
});

// Dom7
var $$ = Dom7;

// Init/Create main view
var mainView = app.views.create('.view-main', {
  url: '/'
});

// Login Screen Demo
$$('#my-login-screen .login-button').on('click', function () {
  var username = $$('#my-login-screen [name="username"]').val();
  var password = $$('#my-login-screen [name="password"]').val();

  // Close login screen
  app.loginScreen.close('#my-login-screen');

  // Alert username and password
  app.dialog.alert('Username: ' + username + '<br>Password: ' + password);
});


$$('.swiper-container').on('taphold', function () {
  app.dialog.alert('Tap hold fired!');
  swiper.autoplay.stop();
});

// ------------------------------Google Maps------------------------------
// app.onPageInit('maps', function (page) {
//   console.log('maps');
// });

var map;
document.addEventListener("deviceready", function() {
  var div = document.getElementById("map_canvas");

  // Initialize the map view
  map = plugin.google.maps.Map.getMap(div);

  // Wait until the map is ready status.
  map.addEventListener(plugin.google.maps.event.MAP_READY);
}, false);

$$('.mapbtn').on('click', function (e) {
  console.log('Testing');
  // Move to the position with animation
  map.animateCamera({
    target: {lat: 37.422359, lng: -122.084344},
    zoom: 17,
    tilt: 60,
    bearing: 140,
    duration: 5000
  }, function() {

    // Add a maker
    map.addMarker({
      position: {lat: 37.422359, lng: -122.084344},
      title: "Welecome to \n" +
             "Cordova GoogleMaps plugin for iOS and Android",
      snippet: "This plugin is awesome!",
      animation: plugin.google.maps.Animation.BOUNCE
    }, function(marker) {

      // Show the info window
      marker.showInfoWindow();

      // Catch the click event
      marker.on(plugin.google.maps.event.INFO_CLICK, function() {

        // To do something...
        alert("Hello world!");

      });
    });
  });
});

$$('.alertbtn').on('click', function (e) {
  console.log('This is alert btn');
});
// ---------------------------------------------------------------------------------
app.init(); 

route.js

routes = [
  {
    path: '/',
    url: './index.html',
  },
  {
    path: '/about/',
    url: './pages/about.html',
  },
  {
    path: '/form/',
    url: './pages/form.html',
  },
  {
    path: '/maps/',
    url: './pages/maps.html',
  },
  // Page Loaders & Router
  {
    path: '/page-loader-template7/:user/:userId/:posts/:postId/',
    templateUrl: './pages/page-loader-template7.html',
  },
  {
    path: '/page-loader-component/:user/:userId/:posts/:postId/',
    componentUrl: './pages/page-loader-component.html',
  },
  {
    path: '/request-and-load/user/:userId/',
    async: function (routeTo, routeFrom, resolve, reject) {
      // Router instance
      var router = this;

      // App instance
      var app = router.app;

      // Show Preloader
      app.preloader.show();

      // User ID from request
      var userId = routeTo.params.userId;

      // Simulate Ajax Request
      setTimeout(function () {
        // We got user data from request
        var user = {
          firstName: 'Vladimir',
          lastName: 'Kharlampidi',
          about: 'Hello, i am creator of Framework7! Hope you like it!',
          links: [
            {
              title: 'Framework7 Website',
              url: 'http://framework7.io',
            },
            {
              title: 'Framework7 Forum',
              url: 'http://forum.framework7.io',
            },
          ]
        };
        // Hide Preloader
        app.preloader.hide();

        // Resolve route to load page
        resolve(
          {
            componentUrl: './pages/request-and-load.html',
          },
          {
            context: {
              user: user,
            }
          }
        );
      }, 1000);
    },
  },
  // Default route (404 page). MUST BE THE LAST
  {
    path: '(.*)',
    url: './pages/404.html',
  },
];

maps.html

<div data-page="maps" class="page" data-name="maps" >
  <div class="navbar">
    <div class="navbar-inner sliding">
      <div class="left">
        <a href="#" class="link back">
          <i class="icon icon-back"></i>
          <span class="ios-only">Back</span>
        </a>
      </div>
      <div class="title">Maps</div>
    </div>
  </div>
  <div class="page-content">
    <div class="block-title">This is Maps</div>
    <div class="block block-strong">
    </div>
    <div class="block">
          <div id="map_canvas" style="width: 300px;height: 300px">Maps</div> 
          <button class="mapbtn" id="button">Button</button>
          <button class="alertbtn">ALERT!!!!!</button>
    </div>
  </div>
</div>

0 ответов

Другие вопросы по тегам