简体   繁体   English

使用Rails加载页面时的jQuery Mobile弹出窗口

[英]jQuery Mobile popup on page load with Rails

I am trying to open a popup on page load using jQuery Mobile and Rails. 我试图使用jQuery Mobile和Rails在页面加载时打开一个弹出窗口。

The popup can be opened with a link, but I can't make it open on load. 可以使用链接打开弹出窗口,但我无法在加载时打开它。

HTML code HTML代码

<div data-role="popup" id="popup-choix" data-history="false" data-overlay-theme="a" data-transition="flow" data-position-to="window">
    <ul>...</ul>
</div>

Javascript code Javascript代码

$(document).on("pageshow", function() {
  $('#popup-choix').popup('open'); 
});

I checked with Chrome and the Javascript is correctly linked to the page. 我查看了Chrome,并且Javascript正确链接到该页面。

I have a link on the page to open the popup. 我在页面上有一个链接打开弹出窗口。 It works perfectly. 它完美地运作。

<div class="div-popup"><a href="#popup-choix" data-rel="popup">...</a></div>

I guess the problem is with my Javascript then... 我猜问题是我的Javascript然后......


UPDATE UPDATE

I placed the Javascript in popup.js , which is then called with the application.js manifest. 我将Javascript放在popup.js ,然后使用application.js清单调用它。

UPDATE 2 更新2

I wrote the javascript in popup.js and call it with the manifest . 我在popup.js中编写了javascript并使用清单调用它。

Updated 更新

Note: for Ruby on Rails users read this comment . 注意:对于Ruby on Rails,用户阅读此评论

This is the correct way to open a popup, once page loads/shows. 一旦页面加载/显示,这是打开弹出窗口的正确方法。

$(document).on("pageshow", function() {
 $('#popup-choix').popup('open');
});

In some browsers, popup doesn't show once the page loads, therefore, adding timeout to open the popup is essential. 在某些浏览器中,一旦页面加载,弹出窗口就不显示,因此,添加超时以打开弹出窗口是必不可少的。

Source 资源

$(document).on("pageshow", function() {
 setTimeout(function () {
    $('#popup-choix').popup('open');
 }, 100); // delay above zero
});

If you want to open for a specific page, add '#PageId' instead of document . 如果要为特定页面打开,请添加'#PageId'而不是document

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM