jquery ui dialog 替代 confirm

张映 发表于 2015-11-20

分类目录: nodejs/vue/js/jquery

标签:, , , ,

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