js的confirm,有的瀏覽器會直接屏蔽掉,導致功能無法使用,推薦使用jquery ui 的dialog功能,完美替換confirm功能
1、html代碼
1
2
|
< div
id = "confirm_dialog"
title = "提示"
style = "display:none;" >
</ div >
|
把上面代碼放到公用的地方
2、模擬confirm js代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var
recommend = {
delete :
function (url,obj)
{
$.ajax({
url:
url,
type:
"get" ,
success: function (data)
{
............省略..........
}
});
}
}
|
4、怎麼調用
1
2
3
4
|
$( '.recommended_delete' ).click( function (){
var
obj = this ;
common.confirm_act( 'confirm_dialog' ,$(obj).attr( 'msg' ), function (){recommend. delete ($(obj).attr( 'url' ),obj)});
});
|
注意,如果函數中要傳this,注意要重新定義。