jquery重写实现confirm功能

jaksmine 2012-08-03 04:52:42
写个函数实现confirm,要改样式,改函数名为Confirm,下面是我写的函数,但是不行,大家帮忙看看是什么问题
function Confirm(msg)
{
var alertFram = document.createElement("div");
$(alertFram).attr('id', 'confirmFram');
$(alertFram).attr('class', 'alert alert-block');
$(alertFram).width('300px');
$(alertFram).height('100px');
$(alertFram).css({
"position":"absolute",
"left":"40%",
"top":"30%",
"margin-left":"-75px",
"text-align":"center",
"line-height":"50px",
});
strHtml = ' <h4 class="alert-heading">警告!</h4>';
strHtml += msg;
strHtml += "<p> <input type=\"button\" class=\"btn btn-danger\" value=\"确 定\" onclick=\"ok()\" />";
strHtml += " <input type=\"button\" class=\"btn btn-danger\" value=\"取消\" onclick=\"cancel()\" />";
$(alertFram).html(strHtml);
$('body').append(alertFram);
this.ok = function()
{
$(alertFram).hide();
return true;
}
this.cancel = function()
{
$(alertFram).hide();
return false;
}

return false;
}

有会的朋友帮帮忙吧
...全文
2718 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
虞海飞 2014-09-09
  • 打赏
  • 举报
回复
$('input[type="button"]').bind('click',function(){ if( confirm('您确定要这样做吗?') ){ aler("ok"); } });
hch126163 2012-08-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:

http://www.scscms.com/article/2012-2/2317569957.html试试我写的吧,而且是美化版。模拟alert集警告、信息、错误、提问效果。

这个弹框效果不错,可是必须要加两个参数吗?confirm是怎么实现通过点击“确认”和“取消”来return true和false的?
[/Quote]

div 模拟的对话框,是不能有返回值的。弹出div 不能阻隔线程。

只能用回调函数来实现

伪代码:

function Confirm(title,msg,confirmFun,cancelFun){
// 创建div,并弹出
}
一个例子
http://blog.csdn.net/hch126163/article/details/5989554
jaksmine 2012-08-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你那个点击按钮会出错,作用域不同

你这个confirm和系统的confirm不一样,需要传递回调函数执行,return true/false没有意义,自己好好研究下js基础

JScript code
function Confirm(msg,funok,funcancel) {/////
////////....

this.ok = function () {
……
[/Quote]

可以实现和系统的confirm一样的效果吗?回调函数该怎么写才行?
jaksmine 2012-08-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

http://www.scscms.com/article/2012-2/2317569957.html试试我写的吧,而且是美化版。模拟alert集警告、信息、错误、提问效果。
[/Quote]
这个弹框效果不错,可是必须要加两个参数吗?confirm是怎么实现通过点击“确认”和“取消”来return true和false的?
jaksmine 2012-08-04
  • 打赏
  • 举报
回复
看来只能使用回调函数了,多谢各位帮忙
scscms太阳光 2012-08-03
  • 打赏
  • 举报
回复
http://www.scscms.com/article/2012-2/2317569957.html试试我写的吧,而且是美化版。模拟alert集警告、信息、错误、提问效果。
Go 旅城通票 2012-08-03
  • 打赏
  • 举报
回复
你那个点击按钮会出错,作用域不同

你这个confirm和系统的confirm不一样,需要传递回调函数执行,return true/false没有意义,自己好好研究下js基础

 function Confirm(msg,funok,funcancel) {/////
////////....

this.ok = function () {
alertFram.hide();
if(typeof funok=='function')funok();///////
return true;
}
this.cancel = function () {
alertFram.hide();
if(typeof funcancel=='function')funcancel();///////
return false;
}

}

new Confirm('abc',function(){alert('点击确定按钮!')},function(){alert('点击取消按钮!')});

jaksmine 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

JScript code
function Confirm(msg) {
var alertFram = $(document.createElement("div"));
alertFram.attr('id', 'confirmFram');
alertFram.attr('class', 'alert alert-block');
……
[/Quote]
不行,点击确认后无法返回true,而且这和我上面写的不是一样的吗?只是换了一种写法,有什么区别吗?
Go 旅城通票 2012-08-03
  • 打赏
  • 举报
回复
    function Confirm(msg) {
var alertFram = $(document.createElement("div"));
alertFram.attr('id', 'confirmFram');
alertFram.attr('class', 'alert alert-block');
alertFram.width('300px');
alertFram.height('100px');
alertFram.css({
"position": "absolute",
"left": "40%",
"top": "30%",
"margin-left": "-75px",
"text-align": "center",
"line-height": "50px"
});

strHtml = ' <h4 class="alert-heading">警告!</h4>';
strHtml += msg;
strHtml += "<p></p>";/////////
alertFram.html(strHtml);
$('body').append(alertFram);
///////////////////////////////////////////////////
var btnok = $(document.createElement('input')), btncancel = $(document.createElement('input'));
var me = this;
btncancel.attr({ type: 'button', class: 'btn btn-danger', value: '取消' }).click(function () { me.cancel(); });
btnok.attr({ type: 'button', class: 'btn btn-danger', value: '确 定' }).click(function () { me.ok(); });
alertFram.find('p').append(btncancel).append(btnok);
///////////////////////////////////////////////////
this.ok = function () {
alertFram.hide();
return true;
}
this.cancel = function () {
alertFram.hide();
return false;
}

return false;
}
$(function () {
var c = new Confirm('abc');
});

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧