加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

基于jQuery的弹出警告对话框美化插件(警告,确认和提示)

发布时间:2016-11-22 17:52:59 所属栏目:Unix 来源:网络整理
导读:前不久在官方网站是看见这个插件,所以今天趁有空就看了一下,随便给大家共享一下。也许你早已知道了 ,如果是这样那请跳过,不要拍砖。 这个Jquery插件的目的是替代JavaScript的标准函数alert(),confirm(),和 prompt()。这个插件有 如下这些特点: 1
前不久在官方网站是看见这个插件,所以今天趁有空就看了一下,随便给大家共享一下。也许你早已知道了

,如果是这样那请跳过,不要拍砖。

这个Jquery插件的目的是替代JavaScript的标准函数alert(),confirm(),和 prompt()。这个插件有

如下这些特点:

1:这个插件可以使你可以支持你自己的css制定。使你的网站看起来更专业。

2:允许你自定义对话框的标题。

3:在IE7中,可以使你避免使用JavaScript 的prompt()函数带来的页面重新加载。

4:这些方法都模拟了Windows的模式对话框。在你改变改变浏览器窗口大小时候,它能够自适应用户

窗口的调整。

5:如果你引入了jQuery UI Draggable plugin插件,那这个插件也可以被自由拖动。

先在这里说插件的下载地址,以供有需之人下载:

http://labs.abeautifulsite.net/projects/js/jquery/alerts/jquery.alerts-1.1.zip

一:首先在lt;headgt;lt;/headgt;导入JQuery,jquery.ui.draggable
和jquery.alerts的 css、js文件。
lt;script src="/path/to/jquery.js" type="text/javascript"gt;lt;/scriptgt;

lt;script src="/path/to/jquery.ui.draggable.js" type="text/javascript"gt;lt;/scriptgt;

lt;script src="/path/to/jquery.alerts.js" type="text/javascript"gt;lt;/scriptgt;

lt;link href="/path/to/jquery.alerts.css" rel="stylesheet" type="text/css" media="screen" /gt;

为了在iE中正确的使用alert插件,你还得在Page中加入何时DTD:

lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"gt;

二:使用
我们可以用下列方式来使用这个Jquery插件。

jAlert(message, [title, callback])
jConfirm(message, [title, callback])
jPrompt(message, [value, title, callback])
注:不同于Javascript标准函数,我们可以在message中使用HTML参数显示你的提示信息。

三:兼容性:
alert插件要求我们必须使用JQuery1.2.6或以上的jQuery包。

已经被测试能够在IE6、IE7、FF2、FF3、Safari 3 、Chrome 、Opera 9浏览器上很好的运行。

四:Demo:注:在Demo中么有引入dragonable插件所以不能拖拽
Test Alert
复制代码 代码如下:
jAlert('This is a custom alert box;
lt;a href="http://www.cnblogs.com/whitewolf/"gt;
本示例来自破浪博客lt;/agt;',
'Alert Dialog');

Test Confirm
复制代码 代码如下:
jConfirm('Can you confirm this?
lt;a href="http://www.cnblogs.com/whitewolf/"gt;
本示例来自破浪博客lt;/agt;',
'Confirmation Dialog', function(r) {
jAlert('Confirmed: ' + r, 'Confirmation Results');
});

Test Prompt
复制代码 代码如下:
jPrompt('Type something:lt;
a href="http://www.cnblogs.com/whitewolf/"gt;
本示例来自破浪博客lt;/agt;',
'WhiteWolf', 'Prompt Dialog', function(r) {
if( r ) alert('You entered ' + r);
});

关于jConfirm回传的解决方案
我趁今天有空就考虑了下。我觉得lastwinter问这个问题应该是关于ASP.NET的回传问题,这主要是jConfirm这个为CallBack回调,
他是异步的,并非同步。
所以我尝试了下阻止事件的冒泡,并当选择为true是自动回传。用LinkButton测试(Button不同于这个解决的方案在后面解释)
现贴出LinkButton的CODE DEMO:
关于jConfirm回传DEMO
复制代码 代码如下:
lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %gt;
lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"gt;
lt;html xmlns="http://www.w3.org/1999/xhtml"gt;
lt;head runat="server"gt;
lt;titlegt;lt;/titlegt;
lt;script src="Script/jquery-1.3.2.min.js" type="text/javascript"gt;lt;/scriptgt;
lt;script src="Script/jquery.alerts-1.1/jquery.alerts.js" type="text/javascript"gt;lt;/scriptgt;
lt;link href="Script/jquery.alerts-1.1/jquery.alerts.css" rel="stylesheet" type="text/css" /gt;
lt;/headgt;
lt;bodygt;
lt;form id="form1" runat="server"gt;
lt;asp:LinkButton ID="LinkButton1" runat="server" onclick="Button1_Click" gt;LinkButtonlt;/asp:LinkButtongt;
lt;asp:Label ID="Label1" runat="server" Text="Label"gt;lt;/asp:Labelgt;
lt;divgt;
lt;/divgt;
lt;/formgt;
lt;script type="text/javascript"gt;
$(document).ready(function() {
$("#lt;%=LinkButton1.ClientID %gt;").click(function(event) {
jConfirm("test", "test jconfirm", function(r) {
if (r) {
lt;%= Page.ClientScript.GetPostBackClientHyperlink(LinkButton1,"") %gt;
}
});
event.stopPropagation();
event.preventDefault();
});
});
lt;/scriptgt;
lt;/bodygt;
lt;/htmlgt;

LinkButton1 Button Click CODE
复制代码 代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
this.Label1.Text = DateTime.Now.ToString();
}

主要为先阻止事件的冒泡event.stopPropagation();event.preventDefault(); 在jConfirm的callback回调函数中判断是否需要回传,
lt;%= Page.ClientScript.GetPostBackClientHyperlink(LinkButton1,"") %gt;;;
点击LinkButton1是效果为:

点击Cancel时候就不会回传,当ok时候就会发生回传更新时间:

对于我们的LinkButton的实现是在输出的客户端Html代码有脚本自动回传,而Button这是HTML元素submit,提交,
所以在这两个的区别下,LinkButton就多了几处javascript 代码:
复制代码 代码如下:
lt;script type="text/javascript"gt;
//lt;![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]gt;
lt;/scriptgt;

和 input Hidden
复制代码 代码如下:
lt;input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /gt;
lt;input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /gt;

上面所说的意思就是如果要用Button实现同样的示例,我们必须保证我的输出客户端的代码有这些回传脚本注册,还有就是回传为
lt;%=Page.ClientScript.GetPostBackEventReference(Button1,"") %gt;。所以我觉得用LinkButton更适合。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读