js的confirm,有的浏览器会直接屏蔽掉,导致功能无法使用,推荐使用jquery ui 的dialog功能,完美替换confirm功能
1,html代码
<div id="confirm_dialog" title="提示" style="display:none;"> </div>
把上面代码放到公用的地方
2,模拟confirm js代码
var common = {
	confirm_act:function(dialog_id,msg,callback) {
	    $("#"+dialog_id).html("<p class='message'>"+msg+"</p>");
	    $("#"+dialog_id).dialog({
		    resizable: false,
		    modal: true,
		    overlay: {
		        backgroundColor: '#000',
		        opacity: 0.5
		    },
		    buttons: {
		        '确认': function() {
		            callback.call();
		            $(this).dialog('close');
		        },
		        '取消': function() {
		            $(this).dialog('close');
		        }
		    }
	     });
	}
}
定义了一个方法confirm_act,放到公用js文件中,第一个参数,弹层的ID,第二个参数是提示消息,第三个,是回调函数。
注意,调用回调函数时,要用js的call()函数,这个回调函数可以带参数,也可以再包含回调函数。
3,回调js代码
var recommend = {
	delete: function(url,obj)
	{
		$.ajax({
			url: url,
			type: "get",
			success:function(data)
			{
				............省略..........
			}
		});
	}
}
4,怎么调用
$('.recommended_delete').click(function(){
	var obj = this;    //重命名
	common.confirm_act('confirm_dialog',$(obj).attr('msg'),function(){recommend.delete($(obj).attr('url'),obj)});
});
注意,如果函数中要传this,注意要重新定义。
转载请注明
作者:海底苍鹰
地址:http://blog.51yip.com/jsjquery/1775.html