js方法传入对象;js方法传入方法;js方法回调 callback

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<title>无标题文档</title>
</head>
<script type="text/javascript">
function apprise(string, args, callback)   //这里是args传递的是一个对象,而callback是一个方法
	{
	var default_args =
		{
		'input'		:	false, 		// 是否有文本框
		'textOk'		:	"确定",		// 确定按钮的默认值
		'textCancel'	:	"取消"		// 取消按钮的默认值
		}
	
	if(args)   //如果参数有值
		{
		for(var index in default_args)      //default_args 有3个属性,我们对这3个属性进行循环
			{ 
				if(typeof args[index] == "undefined")    // 如果传递进来的参数的其中一个属性的值为undefined的话
					{
						args[index] = default_args[index];   
//我们就给传递的参数的其中的一个属性一个默认值(这个默认值由default_args来提供) } } } //开始创建一个div var div='<div id="mydiv" style="border:1px #ccc solid;width:500px; height:300px">'+string; //如果需要创建文本框的话,我们就创建一个input if(args["input"]==true){ div+='<input type="text">'; } //创建2个按钮 div+='<button value="ok">'+args["textOk"]+'</button><button value="cancel">'+args["textCancel"]+'</button>'+ '</div>'; $(div).appendTo($("body")); $("#mydiv > button").click(function(){ if(this.value=="ok"){ var txt=$("#mydiv > input[type='text']").val(); if(typeof(txt)!="undefined"){ //如果文本不为undefined的话,我们就回调文本,否则就回调false callback(txt);//调用传进来的函数方法,并且把txt当做参数穿进去 ,就会执行 alert(canshu) 这个方法体了 } else{ callback(false); } }else { callback(false); //如果点击的是取消按钮,则直接返回false } }); } function my(){ apprise("请输入分组的名称", { 'input': true,'textOk':'点是'},function(re_value){ //这里实际上就是把canshu当做是返回值在使用 //如果你有什么ajax要提交 这里是最合适不过了 if(re_value){ //如果re_value有值的话 if (typeof (re_value) == 'string') { //如果返回的是个字符串,我们就弹出来 alert(re_value) } } }); } </script> <body> <input type="button" onclick="my()" value="点击" /> </body> </html>
posted @ 2014-04-24 16:18  梨花驿路  阅读(2070)  评论(0编辑  收藏  举报