jquery-mobile - 如果从外部拉入触发页面,为什么插件不会触发?
我需要一些帮助:
- 我有三个独立的 JQM 页面 - page1.html、page2.html 和 page3.html。
- 我将 .js 文件添加到所有页面,因此无论先加载哪个页面也会加载插件
- 上的插件
- page2.html 有一个名为 data-some="true" 的触发器来触发page2 添加了一个等待创建触发页面的侦听器,
如下所示:
(function($,window){
$.widget("mobile.somesome",$.mobile.widget, {
_create: function() {
var self = this;
console.log("here we go");
...
}
});
// initialize
var trigger = $('div:jqmData(somesome="true")').live( 'pagecreate',function(event){
if ($('html').data('somesome-init', 'Off')) {
$('html').data('somesome-init', 'On')
console.log("trigger fired");
trigger.somesome();
}
});
}) (jQuery,this);
问题:
如果我直接加载 page2.html,一切都会正常工作 = 控制台记录触发器已被触发并且插件运行。
但是,如果我从 page1.html 或 page3.html 开始,然后调用 page2.html 希望插件会触发,我只会得到控制台“触发触发”,所以我检测到正确,但插件本身没有跑步。
有人能给我提示吗?
编辑 添加了一些示例:
- page2直接直接加载这个,颜色变成红色
- 通过 page1 从这里开始,然后转到 page2,没有任何反应
- 通过 page3 或者从这里开始并转到 page2,也没有任何反应
I need some help:
- I have three separate JQM pages - page1.html, page2.html and page3.html.
- I'm adding my .js files to all pages, so whichever page is loaded first also loads the plugin
- page2.html has a trigger called data-somesome="true" to fire the plugin on page2
- I have added a listener that waits for the trigger page to be created
Looks like this:
(function($,window){
$.widget("mobile.somesome",$.mobile.widget, {
_create: function() {
var self = this;
console.log("here we go");
...
}
});
// initialize
var trigger = $('div:jqmData(somesome="true")').live( 'pagecreate',function(event){
if ($('html').data('somesome-init', 'Off')) {
$('html').data('somesome-init', 'On')
console.log("trigger fired");
trigger.somesome();
}
});
}) (jQuery,this);
Problem:
If I load page2.html directly, everything works as normal = console logs the trigger has been fired and the plugin runs.
However, if I start on either page1.html or page3.html and then call page2.html hoping the plugin would fire, I only get the console "trigger fired", so I'm detecting correct, but the plugin itself doesn't run.
Can anybody give me a hint?
EDIT
Added some examples:
- page2 direct load this directly, and the color changes to red
- via page1 start from here, then go to page2, nothing happens
- via page3 or start from here and go to page2, also nothing happens
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
$(this) 让它工作......就像这样:
$(this) makes it work... like so: