修改jquery里的dialog對話框插件為框架頁(iframe) 的方法
更新時間:2010年09月14日 02:09:27 作者:
為什么我不直接用modal form來做呢?所以我就做了個jquery下面dialog的插件,需要引用原來dialog的文件。
jquery有個很不錯的ui插件,dialog插件,他的官方網(wǎng)站上有各種形式的演示:http://jqueryui.com/demos/dialog/ ,可能大家用得比較多的還是它的默認(rèn)模式,具體的用法官網(wǎng)上都有,也有中文的講解地址,我就不再重復(fù)了,最近在弄彈出框架頁,仔細(xì)一看,和dialog插件的modal form 模式很相似,demo演示效果:http://www.lovewebgames.com/addNews.aspx

就是這么個效果,要進(jìn)行登錄注冊彈出層,至于為什么我不直接用modal form來做呢?因為我喜歡,你管我。所以我就做了個jquery下面dialog的插件,需要引用原來dialog的文件。具體代碼如下:
(function ($) {
$.fn.openWidow = function (options) {
var divId = "dialog" + Math.round(Math.random() * 100);
var settings = {
id: divId,
width: 300,
height: 200,
modal: true,
buttons: {
},
show: "explode",
hide: "highlight",
title: "提示",
url: "/test.aspx",
close: function () {
$("#" + this.id).remove();
//debugger
if (document.getElementById(this.id))
document.body.removeChild(document.getElementById(this.id));
}
};
if (options) {
$.extend(settings, options);
}
$("body").append('<div id="' + settings.id + '" title="Dialog Title"><p class="loading"></p></div>');
// Dialog
$('#' + settings.id).dialog({
autoOpen: false,
title: settings.title,
width: settings.width,
height: settings.height,
modal: true,
bgiframe: true,
show: settings.show,
hide: settings.hide,
buttons: settings.buttons,
close: settings.close,
open: function () {
$("#" + settings.id).html('<iframe src="' + settings.url + '" frameborder="0" height="100%" width="100%" id="dialogFrame" scrolling="auto"></iframe>');
},
resizeStop: function () {
$("#dialogFrame").css("width", parseInt($(this).css("width")) - 5);
$("#dialogFrame").css("height", parseInt($(this).css("height")) - 5);
}
});
$('#' + settings.id).dialog("open");
return this;
};
})(jQuery);
我想大家應(yīng)該都還看得懂的,沒啥復(fù)雜的,就是重復(fù)重復(fù)再重復(fù)的工作。甚至很多參數(shù)本身就是dialog的,我只是加了層皮。我相信這個方法是很多新手都希望用到的,畢竟不是每個人都喜歡并熟練使用ajax,所以這時候iframe的用途還是很大的。
并希望有興趣的朋友加入我的Q群:70210212、5678537,平時多勾通下,有問題不用一個人想。

就是這么個效果,要進(jìn)行登錄注冊彈出層,至于為什么我不直接用modal form來做呢?因為我喜歡,你管我。所以我就做了個jquery下面dialog的插件,需要引用原來dialog的文件。具體代碼如下:
復(fù)制代碼 代碼如下:
(function ($) {
$.fn.openWidow = function (options) {
var divId = "dialog" + Math.round(Math.random() * 100);
var settings = {
id: divId,
width: 300,
height: 200,
modal: true,
buttons: {
},
show: "explode",
hide: "highlight",
title: "提示",
url: "/test.aspx",
close: function () {
$("#" + this.id).remove();
//debugger
if (document.getElementById(this.id))
document.body.removeChild(document.getElementById(this.id));
}
};
if (options) {
$.extend(settings, options);
}
$("body").append('<div id="' + settings.id + '" title="Dialog Title"><p class="loading"></p></div>');
// Dialog
$('#' + settings.id).dialog({
autoOpen: false,
title: settings.title,
width: settings.width,
height: settings.height,
modal: true,
bgiframe: true,
show: settings.show,
hide: settings.hide,
buttons: settings.buttons,
close: settings.close,
open: function () {
$("#" + settings.id).html('<iframe src="' + settings.url + '" frameborder="0" height="100%" width="100%" id="dialogFrame" scrolling="auto"></iframe>');
},
resizeStop: function () {
$("#dialogFrame").css("width", parseInt($(this).css("width")) - 5);
$("#dialogFrame").css("height", parseInt($(this).css("height")) - 5);
}
});
$('#' + settings.id).dialog("open");
return this;
};
})(jQuery);
我想大家應(yīng)該都還看得懂的,沒啥復(fù)雜的,就是重復(fù)重復(fù)再重復(fù)的工作。甚至很多參數(shù)本身就是dialog的,我只是加了層皮。我相信這個方法是很多新手都希望用到的,畢竟不是每個人都喜歡并熟練使用ajax,所以這時候iframe的用途還是很大的。
并希望有興趣的朋友加入我的Q群:70210212、5678537,平時多勾通下,有問題不用一個人想。
您可能感興趣的文章:
相關(guān)文章
jQuery中on綁定事件后引發(fā)的事件冒泡問題如何解決
這篇文章主要介紹了jQuery中on綁定事件后引發(fā)的事件冒泡問題及解決辦法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-05-05jQuery+css實現(xiàn)非常漂亮的水平導(dǎo)航菜單效果
這篇文章主要介紹了jQuery+css實現(xiàn)非常漂亮的水平導(dǎo)航菜單效果,通過each方法遍歷元素再使用removeClass與addClass變換頁面元素樣式實現(xiàn)導(dǎo)航菜單的切換效果,需要的朋友可以參考下2016-07-07picLazyLoad 實現(xiàn)圖片延時加載(包含背景圖片)
下面小編就為大家?guī)硪黄猵icLazyLoad 實現(xiàn)圖片延時加載(包含背景圖片)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07