我想加載一個靜態的街景圖像,其中各種參數存儲在mysql數據庫中。嘗試了很多選擇之後,我現在將數據庫數據傳遞給一個JavaScript變量,然後嘗試構建相關的URL(考慮到一路上的頁面寬度)。jQuery手機:動態添加圖像
頁面加載爲restaurant.php?r = xyz其中xyz在MySQL上查找以返回傳遞到javascript數組的一行數據$ r。某些數組字段用於創建Google Street View靜態圖像的URL,然後將其加載到頁面中。
如果我在網站的其他地方(或頁面刷新後)輸入獲取此頁面,此工作正常。
但是,如果我從這個頁面開始瀏覽並瀏覽所有將來的鏈接到restaurant.php?r = abc,請不要加載圖片(它已下載並可在Chrome來源框中看到)。 pageinit事件觸發,但.html()無法更改內容(但報告沒有錯誤)。
我懷疑我破壞的JavaScript的一些法律和jQuery移動....
在頭部聲明
var resto = {};
function insertSVPhoto() {
console.log("insertSVPhoto: Loaded data for: "+resto['rname']);
if (Math.round(resto['heading']) != 0) {
var width = Math.round($(document).width() * .9);
var s= "x250&location="+resto['lat']+",%20"+resto['lng']+"&fov=60&heading="+resto['heading']+"&pitch="+resto['pitch']+"&sensor=false";
var photo = "<img src='http://maps.googleapis.com/maps/api/streetview?size="+width+s+"'>";
console.log("Loading photo: "+photo);
$('#svphoto').html(photo);
} else {
console.log('No photo available');
$('#svphoto').html("<img src=''>");
}
}
,然後在下面我有
<div data-role="page" data-add-back-btn="true">
<script type="text/javascript" >
<?php
echo "resto = ".json_encode($r).";";
?>
$(document).on("pageinit", insertSVPhoto);
</script>
<div id='svphoto'></div>
嘗試將其綁定到'pagebeforeshow'。 – Omar 2013-03-16 17:28:10
不,沒有幫助。我也嘗試使用'.attr('src',...)'來直接改變照片,並且它只能在restaurant.php被jqm/ajax加載而不是直接加載(或者在頁面刷新) – 2013-03-17 11:03:28