我正在使用下面的代码(位于文件swipe.js中):
$(document).ready(function() {
$('.ui-slider-handle').live('touchstart', function(){
// When user touches the slider handle, temporarily unbind the page turn handlers
doUnbind();
});
$('.ui-slider-handle').live('mousedown', function(){
// When user touches the slider handle, temporarily unbind the page turn handlers
doUnbind();
});
$('.ui-slider-handle').live('touchend', function(){
//When the user let's go of the handle, rebind the controls for page turn
// Put in a slight delay so that the rebind does not happen until after the swipe has been triggered
setTimeout( function() {doBind();}, 100 );
});
$('.ui-slider-handle').live('mouseup', function(){
//When the user let's go of the handle, rebind the controls for page turn
// Put in a slight delay so that the rebind does not happen until after the swipe has been triggered
setTimeout( function() {doBind();}, 100 );
});
// Set the initial window (assuming it will always be #1
window.now = 1;
//get an Array of all of the pages and count
windowMax = $('div[data-role="page"]').length;
doBind();
});
// Functions for binding swipe events to named handlers
function doBind() {
$('div[data-role="page"]').live("swipeleft", turnPage);
$('div[data-role="page"]').live("swiperight", turnPageBack);
}
function doUnbind() {
$('div[data-role="page"]').die("swipeleft", turnPage);
$('div[data-role="page"]').die("swiperight", turnPageBack);
}
// Named handlers for binding page turn controls
function turnPage(){
// Check to see if we are already at the highest numbers page
if (window.now < windowMax) {
window.now++
$.mobile.changePage("#page"+window.now, {transition: window.localStorage.getItem("transitionsSettings")}, false, true);
}
else
{
window.now= window.now-2;
$.mobile.changePage("#page"+window.now, {transition: window.localStorage.getItem("transitionsSettings")}, false, true);
}
}
function turnPageBack(){
// Check to see if we are already at the lowest numbered page
if (window.now != 1) {
window.now--;
$.mobile.changePage("#page"+window.now, {transition: window.localStorage.getItem("transitionsSettings"), reverse: "true"}, true, true);
}
else
{
window.now = window.now+2;
$.mobile.changePage("#page"+window.now, {transition: window.localStorage.getItem("transitionsSettings"), reverse: "true"}, true, true);
}
}
我还有另一个名为loadFeed.js的文件。它们都通过以下顺序加载到index.html中:
<script type="text/javascript" src="script/swipe.js"></script>
<script type="text/javascript" src="script/loadFeed.js"></script>
这是loadFeed.js文件:
google.load("feeds", "1");
alert(window.now);
switch(now)
{
case 1:
var link = "http://www.zive.sk/rss/sc-47/default.aspx";
var listviewID = "feedZive";
break;
case 2:
var link = "http://mobilmania.azet.sk/rss/sc-47/default.aspx";
var listviewID = "feedMobil";
break;
case 3:
var link = "http://www.automoto.sk/rss";
var listviewID = "feedAuto";
break;
}
alert(link);
alert(listviewID);
alert("#"+listviewID);
function initialize() {
var feed = new google.feeds.Feed(link);
feed.setNumEntries(window.localStorage.getItem("entriesNumber"));
feed.load(function(result) {
if (!result.error) {
var feedlist = document.getElementById(listviewID);
for (var i = 0; i < result.feed.entries.length; i++) {
var li = document.createElement("li");
var entry = result.feed.entries[i];
var A = document.createElement("A");
A.setAttribute("href",entry.link);
A.appendChild(document.createTextNode(entry.title));
li.appendChild(A);
feedlist.appendChild(li);
}
$("#"+listviewID).listview("refresh");
}
});
}
google.setOnLoadCallback(initialize);
有没有办法在loadFeed.js中访问window.now变量?
答案 0 :(得分:0)
是。 window
对象随处可用。它是全局范围变量的mack daddy。您可以在“loadFeed.js”或任何javascript块或文件中使用window.now
。
在您的情况下,您将now
属性添加到doc ready回调中的window
对象中。所以这不会立即发生。你不应该期望window.now立即拥有一个值。我建议:
1)将代码包装在“loadFeed.js”中,该代码访问doc ready回调中的window.now
,就像使用了很多swipe.js代码一样:
$(document).ready(function() {
//your code
});
OR
2)在swipe.js中,为window.now
提供doc ready回调之外的值。