我正在使用jQuery Mobile,我正试图将一个简单的列表项从一个页面移动到另一个页面。这是我正在使用的一段代码:
$('#YesNoMaybePage, #summaryPage').live('pageinit', function() {
$('.green, .blue, .red').click(function(){
var $move = $('.purchase').prependTo("#summaryPage .theListItem");
});
});
现在这很好用,当我刷新#summaryPage
时,点击回#YesNoMaybePage
并执行该事件。但是,如果我刷新#YesNoMaybePage
而不是执行它,它就不起作用。当我刷新#summaryPage
时,我认为#YesNoMaybePage
上的html没有加载,而这就是为什么它不起作用的原因,但老实说我不知道。任何想法可能是什么以及如何解决这个问题?
感谢一堆世界。我爱你。为了进一步说明,这里是另一个代码片段,我的代码完全相同:
$('#YesNoMaybePage, #categorizePage').live('pageinit', function() {
$('.green, .blue, .red').click(function(){
var $move = $('.purchase').prependTo("#categorizePage .theListItem");
});
});
答案 0 :(得分:1)
这两个'页面'同时在dom中吗?您似乎正在尝试将html元素添加到当前未显示的页面。那不会飞,你只能修改当前加载的dom。
答案 1 :(得分:0)
这可能是因为您的javascript包含在您的summarypage.html中,而不是在您的yesnomaybepage.html中。 这是jqm的预期行为。 您必须在网站的每个页面中包含相同的js,或者将所有页面打包到单个html文件中。 http://jquerymobile.com/demos/1.2.0/docs/pages/multipage-template.html
答案 2 :(得分:0)
我之前遇到过同样的问题。我的问题在于turbolink。通过禁用它,它对我来说非常有效。这是一种非常简单的删除方式:
转到app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require turbolinks
//= require_tree .
只需删除turbolink前面的等号
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
// require turbolinks
//= require_tree .
那就是