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