鉴于这个问题很难得到更多答案,我会写下我为任何寻找可能方法的人所做的事情。
我用过的解决方案
最后,我使用了JQuery load() 函数来加载一个外部HTML 页面,其中只有我想要显示的部分。
此外,我不再使用JQuery dialog() 函数,因为它获取了 JQuery CSS 样式,我需要将它完全集成到我的 CSS 方案中。另外,我想要更多地控制按钮。所以我所做的是使用以下自定义函数:
function show_user_control(target_control, parameters){
// target_control = the url we want to get the code from
// parameters = the parameters passed to the url, in a JSON format
/*
If we want to call this function and add event to its elements, perform some kind of actions when it finishes loading or call a function created within the external HTML, we will call it this way:
$.when(show_user_control("URL_TO_LOAD")).done(function(element){ --HERE GOES THE ACTIONS TO EXECUTE-- })
*/
return $.Deferred(function(){
var self = this
if(parameters === undefined) parameters = '';
var user_control
var parameters_url = "?"
if(parameters != ''){
parameters = JSON.parse(parameters)
$.each(parameters, function(key,par){
parameters_url += key+"="+par+"&"
})
}
parameters_url = parameters_url.substring(0, parameters_url.length-1)
$("body").append(
$('<div class="user_control_lock"></div>').append(
$('<div class="user_control"></div>').load(target_control + parameters_url, function(){
user_control = $(this)
user_control.center(true)
user_control.on(myDown, ".xlogout", function(){ // Add a global event, common to all the dialogs (if a span.xlogout is clicked, it's closed)
remove_user_control()
})
self.resolve(user_control)
})
)
)
})
}
function remove_user_control(target){
// target = the JQuery object reference to the User_Control we want to remove
if(target === undefined){
$(".user_control_lock").last().empty()
$(".user_control_lock").last().remove()
}else{
target.empty()
target.remove()
}
}
如果有人也有兴趣,则应用于一般div的 CSS如下:
.user_control_lock{
background: rgba(24,24,24,0.8);
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
z-index:9999;
}
.user_control{
z-index: 9999;
position:absolute;
}
.user_control
div 通过JQuery插件 center() JsFiddle sample 居中。
希望它可以帮助某人。另外,接受更正!
亲切的问候。