如何用jquery对话框替换javascript警报(弹出事件所在的位置)?
研究员,我打算把它分解得更清楚一些。 当我看到那些JQuery UI的东西时,我对我需要下载的内容以及放置文件的位置感到困惑。
我成功做的就是链接到JQuery网站,这样我就不必下载任何东西,看到对话框有效。
但是,从我显示的示例中,对话框链接到div。 如果它位于屏幕的顶部并且输入框位于底部,则div不会帮助我。 我在头文件中只有一个函数从多个文本框中调用。 此函数包含带有消息的javascript alert()。
请告诉我我需要在函数中输入的确切代码(我们称之为MyFunction()),它会在任何地方调用MyFunction时弹出消息。
如果它是javascript,在脚本的head部分我们有:
function digitsOnly(){ alert("Digits only, please"); }
在许多文本框中,我们有:
我需要一个漂亮的弹出框来替换javascript alert(); 除了弹出调用文本框旁边的消息之外,我不需要这样做。 如果它是可拖动和可resize的,那将是最酷的事情。 但就目前而言,我会对我提到的事情感到满意。
我一直在学习语言。 我知道我最终也会学习JQuery。 但如果可能的话,我今晚需要这样做。
詹姆士
Javascript的alert()
函数先于其他任何东西运行,因此实际替换其默认行为很难(如果不是不可能)。 但是,您可以轻松地创建自己的function。 代替:
$('.clickable').click(function() { alert("Clicked."); });
做这个:
$('.clickable').click(function() { $('.dialog').dialog({ // options... }); });
你必须通过你的代码并用这个代替每个警报,但是,这不应该是一个很大的交易,特别是如果你使用像Textmate这样具有“搜索项目”function的东西。
window.alert = function(message) { // put your dialog box launching code here. }
看一下jQuery UI的对话框 。 这也不会替换默认的alert()
,因此您应该检查代码并使用对话框实例替换对alert(...)
调用。
提摩太的答案是可行的。 之后请参阅我的评论以获得必要的补充。 我复制并粘贴了Timothy Khouri的回答并附上我的评论:
“当然,我需要它弹出文本框所在的位置……就像javascript警告框一样。”
我想你的意思是,如果你要在页面中间向下滚动,然后调用警报,那么它将以你当前的View Port为中心(你在屏幕上看到的东西)…并且你想要这个新的prettied对话框也可以这样做。
答案是 – “是”……是的,jQuery会将对话框放在当前视口的中心,就像一个警告框一样。
您需要下载并引用主jQuery库以及最新的jQueryUI库以及一个jQuery CSS主题。
然后它应该像以下一样简单:
$("
Yo, G Dog
").dialog({ modal: true });
所以蒂莫西的代码几乎完美无缺。 我不得不做一些乱搞,直到找到导致两个对话框打开的原因。 没有Google搜索的答案。 只是实验帮助我看到插入对话框的每个HTML标签由于某种原因打开了自己的对话框。 解决这个问题的方法是在div中包含所有HTML标记。 现在甚至没有出现空白对话框。
如果您不知道我在说什么,请使用您自己的代码,看看会发生什么。 那么,在括号内添加更多HTML标签。 例:
("Attention>
Yo, G Dog
").dialog({ modal: true });
最后,将h3和p放在div中,看看很酷的结果:
("Attention>
Yo, G Dog
").dialog({ modal: true });
后一段代码只显示一个对话框。 :) 谢谢回答!
詹姆士
试试这个:
$.extend({ alert: function (message, title) { $("").dialog( { buttons: { "Ok": function () { $(this).dialog("close"); } }, close: function (event, ui) { $(this).remove(); }, resizable: false, title: title, modal: true }).text(message); } });
更多信息,
alert = function(a){ my_alert(a); }
我花了大约100次阅读这个问题来理解你的意思
“当然,我需要它弹出文本框所在的位置……就像javascript警告框一样。”
我想你的意思是,如果你要在页面中间向下滚动,然后调用alert
,那么它将以你当前的View Port
为中心(你在屏幕上看到的东西)…并且你想要这个新的prettied对话框也可以这样做。
答案是 – “是”……是的,jQuery会将对话框放在当前视口的中心,就像一个alert
框一样。
您需要下载并引用主jQuery库以及最新的jQueryUI库以及一个jQuery CSS主题。
然后它应该像以下一样简单:
$("Yo, G Dog
").dialog({ modal: true });