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,注意要重新定义。