`

JS例子

 
阅读更多

// JavaScript Document

//mobileinit事件:当Jquery Mobile开始执行时,他就会在document对象上触发mobileinit 事件,所以你可以绑定别的行为来覆盖默认配置
//mobileinit事件是在加载后马上触发
$(document).bind("mobileinit",function(){
	alert("jquerymobile init")
	$.mobile.notesdb=openDatabase("trnotes","1.0","Travel Notes",10*1024*1024);
	
	$.mobile.notesdb.transaction(function(t){
		t.executeSql("CREATE TABLE IF NOT EXISTS notes (" +
				"id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT," +//
				"title TEXT NOT NULL," +//
				"details TEXT NOT NULL," +//
				"entered TEXT NOT NULL," +//
				"updated TEXT," +//
				"latitude REAL," +//
				"longitude REAL," +//
				"photourl TEXT);");
	});
	//$("[data-role=footer]").fixedtoolbar({ tapToggle: false });
	$.mobile.fixedToolbars.setTouchToggleEnabled(false);
	 //$.mobile.showPageLoadingMsg();
});

//pagebeforeshow:转场之前,页面被显示时触发
//pagebeforehide:转场之前,页面被隐藏时触发
//pageshow:转场之后,页面被显示时触发
//pagehide:转场之后,页面被隐藏时触发

//$('div').live('pageshow',function(event, ui){
//	 alert('This page was just hidden: '+ ui.prevPage);
//	});

$(function(){
	$("#home").live("pagebeforeshow",showMapNote);
	$("#new").live("pageshow",getLocation);
	//$("#insert").live("submit",insertEntry);
	//$("#photo").live("click",getPhoto);
	$("#photo").live("tap",getPhoto);
	$("#btnAddNote").live("click",insertEntry);
	$("#travellist").live("pageshow",getTitles);
	$("#editItem").live("click",editItem);
	$("#delete").live("click",deleteItem);
	$("#update").live("click",updateItem);
	$("#limit").live("click",swapList);
	
});




//location
var trNotes={
	lat:39.92,
	lng:116.46,
	limit:20
};


function showMapNote(){
	
	//alert("map page -pagebeforeshow");
	if(!map) return;
	$.mobile.notesdb.transaction(function(t){
		t.executeSql("SELECT * FROM notes ORDER BY id DESC LIMIT ?",[trNotes.limit],
		function(t,result){
			getGraphics(result)
		});
	});
}

function getTitles(){
	var list=$("#recent"),items=[];
	
	$.mobile.notesdb.transaction(function(t){
		t.executeSql("SELECT id,title,details,photourl FROM notes ORDER BY id DESC LIMIT ?",[trNotes.limit],function(t,result){
			var i,len=result.rows.length,row;
			
			if(len>0){
				for(i=0;i<len;i+=1){
					row=result.rows.item(i);
					photo=row.photourl;
					if(!photo)
					  photo="images/nophoto.png";
					content=row.details.substring(0,10);
					items.push("<li><a href='#display' data-trnote='"+row.id+"'><img src="+photo+"/><h3>"+row.title+"</h3><p>"+content+"</p></a></li>");
				}
				list.html(items.join(" "));
				
				list.listview("refresh");
				
				$("a",list).live("click",function(e){
					getItem(($(this).attr("data-trnote")));
				});
				
				$("#entries").show();
				$("#recent").show();

			}
			else
			{
				$("#entries").hide();
				$("#recent").hide();
			}
		});
	});
}

function getLocation(){
	if(!navigator.geolocation){
		alert("can not use geolocation");
		return;
	}
	navigator.geolocation.getCurrentPosition(locSuccess,locFail,{enableHighAccuracy:false});
}

function locSuccess(position){
	trNotes.lat=position.coords.latitude;
	trNotes.lng=position.coords.longitude;
}

function locFail(error){
	var msg="Cannot determine location.";
	if(error.code==error.PERMISSION_DENIED)
	{
		msg+="Geolocation is disabled.";
	}
	try{
		navigator.notification.alert(mag,null,"Geolocation");
	}catch(e){
		alert(msg);
	}
}

//插入日志
function insertEntry(e){
	var title=$("#title").val(),
		details=$("#details").val(),
		photo=$("#myPhoto").attr("src");
	 //alert(photo);
	if(!title)
		title="无";
	if(!details)
		details="无";
	 if(!photo)
	 	photo="images/nophoto.png";
	$.mobile.notesdb.transaction(function(t){
		t.executeSql("INSERT into notes (title,details,entered,latitude,longitude,photourl) VALUES(?,?,date('now'),?,?,?);",[title,details,trNotes.lat,trNotes.lng,photo],
		function(){
			$.mobile.changePage("#home","slide",false,true);
			$("#title").val("");
			$("#details").val("");
			$("myPhoto").css("display","none");
		},null);
	});
	e.preventDefault();
}


function getItem(id){
	$.mobile.notesdb.transaction(function(t){
		t.executeSql("SELECT * FROM notes WHERE id=?",[id],function(t,result){
			var row=result.rows.item(0),entered=convertToMDY(row.entered),updated=row.updated;
			var photo;
			opts={};
			$("#display h1").text(row.title);
			$("#display article").text(row.details);
			photo=row.photourl;
			if(!row.photourl)
				photo="images/nophoto.png";
			$("#displayphoto").attr("src",photo);//.src=row.photourl;
			//alert("DISPLAYS"+row.photourl);
			/*if(row.latitude==null){
				$("#showmap").parent("p").hide();
			}else{
				$("#showmap").parent("p").show();
				opts.title=row.title;
				opts.lat=row.latitude;
				opts.lng=row.longitude;
				
				$("#showmap").unbind("click");
				$("#showmap").click(opts,displayMap);
			}*/
			
			$("#display footer").html("<p>创建时间:"+entered+"</p>");
			
			if(updated!=null){
				updated=convertToMDY(updated);
				
				$("#display footer").append("<p>修改时间:"+updated+"</p>");
			}
			
			$("#delete,#update").attr("data-trnote",id);
			
			$("#title2").val(row.title);
			$("#details2").val(row.details);
		});
	});
}


function convertToMDY(date){
	var d=date.split("-");
	return d[1]+"/"+d[2]+"/"+d[0];
}

function displayMap(e){
	var title=e.data.title,
	latlng=e.data.lat+","+e.data.lng;
	
	if(typeof device !="undefined"&& device.platform.toLowerCase()=="android"){
		window.location="http://maps.google.com/maps?z=16&q="+encodeURIComponent(title)+"@"+latlng;
	}else{
		$("#map h1").text(title);
		$("#map div[data-role=content]").html("<img src='http://maps.google.com/maps/api/staticmap?center="+latlng+"&zoom=16&size=320x420&markers="+latlng+"&sensor=false'>");
		
		$.mobile.changePage("#map","fade",false,true);
	}
}


function editItem(){
	$.mobile.changePage("#editNote","slideup",false,true);
}

function deleteItem(e){
	var id=$(this).attr("data-trnote");
	$.mobile.notesdb.transaction(function(t){
		t.executeSql("DELETE FROM notes WHERE id=?",[id],$.mobile.changePage("#travellist","slide",false,true),null);
	});
	
	e.preventDefault();
}

function updateItem(e){
	var title=$("#title2").val(),details=$("#details2").val(),id=$(this).attr("data-trnote");
	
	$.mobile.notesdb.transaction(function(t){
		t.executeSql("UPDATE notes SET title=?,details=?,updated=date('now') WHERE id=?",[title,details,id],$.mobile.changePage("#travellist","flip",false,true),null);
	});
	
	e.preventDefault();
}


function swapList(){
	var btn=$("#limit .ui-btn-text");
	if(btn.text()=="全部"){
		btn.text("最近");
		//$("#entries h2").text("全部日记");
		trNotes.limit=-1;
	}else{
		btn.text("全部");
		//$("#entries h2").text("最近");
		trNotes.limit=10;
	}
	getTitles();
}


function getPhoto(){
	//alert("click getPhoto");
	if(!navigator.camera) {
		alert("camera can not use");
		return;
	}
	navigator.camera.getPicture(onSuccess, onFail, { quality: 50, destinationType: Camera.DestinationType.FILE_URI });

	function onSuccess(imageData) {
		//alert("camer successful!!!");
		//alert(imageData);
		var newnote=$("#newNote");
		var src=imageData;
		//var src="data:image/jpeg;base64," + imageData;
		var img=$("#myPhoto");
		img.attr("src",src);
		img.css("display","block");
		//var img="<img src="+src+"/>";
		//newnote.append(img);
		newnote.listview("refresh");
	  
	}

	function onFail(message) {
	   alert(' carema Failed because: ' + message);
	}


}
 
分享到:
评论

相关推荐

    Web设计开发常用Javascript例子

    本资源包提供了一些常见的JavaScript例子,帮助开发者更好地理解和应用JavaScript技术。下面,我们将详细探讨这些例子所涵盖的JavaScript知识点。 1. **变量与数据类型**: JavaScript支持动态类型,这意味着变量...

    js特效 javascript例子

    标题“js特效 javascript例子”暗示我们将探讨JavaScript在创建网页特效方面的应用。JavaScript特效可以包括但不限于动画、滑动面板、下拉菜单、轮播图、模态窗口、拖放功能、表单验证等。这些特效为用户提供了更...

    JavaScript 例子(JavaScript 源码html格式)

    这个"JavaScript例子"压缩包提供了一系列的源码示例,旨在帮助学习者深入理解和掌握JavaScript的核心概念与实际应用。 1. **基础语法**:JavaScript的基础语法包括变量声明、数据类型(如字符串、数字、布尔值、...

    javascript例子

    JavaScript例子是一个涵盖源码和工具相关知识的主题,主要聚焦在使用JavaScript进行编程的实际示例上。在这个场景中,"DTree"可能代表一个特定的数据结构或库,如决策树(Decision Tree)或者目录树(Directory Tree...

    js例子,不错的例子

    这个“js例子,不错的例子”压缩包可能包含了多个示例代码,用于帮助开发者理解和学习JavaScript的各种功能和用法。 首先,JavaScript的核心概念包括变量、数据类型、控制结构、函数等。变量是存储数据的容器,可以...

    一个简单的js例子

    【标题】"一个简单的js例子"所提及的是一个JavaScript编程的示例,JavaScript是一种广泛用于网页和网络应用的脚本语言。它主要负责实现客户端的交互性,如动态内容更新、表单验证以及用户界面的实时反馈。JavaScript...

    很早之前收集的无忧脚本论坛的JS例子集合

    【标题】"无忧脚本论坛JS例子集合"是关于JavaScript编程的一个资源库,它包含了从无忧脚本论坛搜集的各种JavaScript示例。这个集合特别有价值,因为它汇聚了多种类型的JavaScript应用,帮助开发者深入理解和掌握...

    超漂亮常用的js例子

    在“超漂亮常用的js例子”这个压缩包中,我们可以期待找到一系列实用且美观的JavaScript代码示例,这些示例可能涵盖日常开发中的关键场景,如用户登录、注册等。 登录功能在Web应用中至关重要,它允许用户创建账户...

    threejs简单例子,threejs中文实例,JavaScript

    标题"threejs简单例子,threejs中文实例,JavaScript"表明我们将通过一个简单的示例来学习Three.js的基础应用,并且这个示例是针对中文用户编写的。 首先,Three.js的核心概念包括场景(Scene)、相机(Camera)和...

    上传的three.js 例子

    描述指出,这个例子会展示如何将名为"obj"的3D模型文件转换为three.js能够识别和使用的JavaScript格式。 首先,我们要理解什么是OBJ文件。OBJ是一种通用的3D模型文件格式,包含几何形状、纹理和表面属性等信息。...

    国外牛人js例子

    这个"国外牛人js例子"的压缩包很可能是包含了一些由国际知名开发者编写的JavaScript代码示例。这些示例通常用来展示JavaScript的独特特性和强大功能,帮助学习者理解和掌握这门语言。下面我们将深入探讨一些可能涵盖...

    epass1000ND_JS例子

    《epass1000ND_JS例子:JavaScript实现与VBScript的对比》 在信息技术领域,数字证书和安全硬件设备的使用越来越广泛,其中epass1000ND是一款常用的电子令牌设备,它主要用于存储和保护用户的私钥,提供安全的身份...

    WebRTC的JS例子,自己编写的,分两端

    自己编写的WebRTC的JS例子。google的PC1,把本端和远端都合在一起了,初学者容易混淆。写了个小例子,分为本端和远端。可以通过手工拷贝SDP和ICE信息,进行呼叫接续。感觉流程比较清晰,可供初学者使用。 测试时,...

    js例子464个.zip

    在本压缩包“js例子464个.zip”中,包含了464个JavaScript实例,这些实例涵盖了JavaScript语言的各个方面,为学习者提供了丰富的实践资源。 1. 基础语法:JavaScript的基础包括变量声明(var、let、const)、数据...

    最强javascript例子(多项代码)

    这个名为“最强javascript例子(多项代码)”的压缩包,显然包含了多种JavaScript的实用代码示例,旨在帮助开发者理解和掌握JavaScript的核心概念和技术。 1. **基础语法**:JavaScript的基础包括变量声明(var, ...

    一个简单的JavaScript例子,虽然简单,但却实用

    这个简单的JavaScript例子,尽管看似基础,但对于理解和学习JavaScript的基本语法、数据类型、控制结构以及函数等方面,具有很大的帮助。 首先,我们来讨论JavaScript的基础语法。在JavaScript中,语句以分号结束,...

    ios-websocket js例子.rar

    然而,这个“ios-websocket js例子.rar”并没有提供服务器端代码,所以我们只能假设这是一个独立的JavaScript客户端示例。要使这个示例工作,你需要有一个支持WebSocket的服务器来与之交互。 总的来说,WebSocket是...

    Ajax-0.11 Ajax.js文件 Ajax.js例子

    描述中的"Ajax.js例子"表明可能包含了一些示例代码,用于展示如何使用`Ajax.js`库。这些示例可能涵盖了简单的数据获取、表单提交、分页加载等功能,帮助开发者理解如何将Ajax集成到实际项目中。 在实际应用中,一个...

    JAVASCRIPT例子程序

    一个简单的例子程序,简单描述了JS的简单制作

Global site tag (gtag.js) - Google Analytics