gpt4 book ai didi

javascript - jQuery Tools Overlay 在第二次点击时不显示

转载 作者:行者123 更新时间:2023-11-29 18:31:06 24 4
gpt4 key购买 nike

这就是我正在尝试做的 - 我正在编写通用覆盖函数,它将服务于具有特定类的所有链接。不过这很简单,您有一个这样的链接:

<a class="modalInput" rel="#prompt">Local load</a>

当你点击它时,javascript 开始运行:

        $(".modalInput").live("click",function()
{
var obj = null;
obj = $(this);
var container = null;
if (!(typeof obj.attr("container") === 'undefined'))
{
container = obj.attr("container");
}
else
{
if (typeof obj.attr("container") === 'undefined')
{
container = obj.attr("rel");

if (container == '#norel')
{
container = randomString();
$("#footer").append("<div id='"+container+"' class='gru_curtain_simple_overlay'></div>");
obj.attr("container", container);
}
else
{
container = container.substring(1, container.length);
}
}
}

test_test(container, obj);
});

此函数获取该链接的各种参数并决定它应该做什么。然后,调用 test_test(),如下所示:

    function test_test(container, obj)
{
var triggers = jQuery("#"+container).overlay({

// some mask tweaks suitable for modal dialogs
mask: {
color: '#000',
loadSpeed: 200,
opacity: 0.9
},
closeOnClick: false,
closeOnEsc: true,
load: true,
oneInstance: false,

onBeforeLoad: function() {
if ($.trim($("#"+container).html()).length < 25)
{
//Check if it's remote
var remote = obj.attr("remote");
if (!(typeof remote === 'undefined'))
{
//$(container).load(remote);
$.get(remote, function(data)
{
$("#"+container).empty().append(data);
});
}
}

//Check if dialog should have close button
var is_closable = obj.attr("closable");
if (is_closable)
{
$("a.close").hide();
}

var wd = parseInt(obj.attr("wd"));
var hg = parseInt(obj.attr("hg"));

if (!(typeof wd === 'undefined'))
{
$("#"+container).css("width", wd);
}
if (!(typeof hg === 'undefined'))
{
$("#"+container).animate({
height: hg
}, 800, function()
{
$("#"+container).css("overflow-x", "hidden");
$("#"+container).css("overflow-y", "visible");

});
//$(container).css("height", hg);
}
},

onLoad: function() {
},

onClose: function() {
//Destroy current container
//var container = obj.attr("rel");
//$(container).empty().html('<img src="/wp-content/themes/default/images/preloader.gif" style="margin: 25% 25%; width: 120px;"/>');
}
});

我知道,它很大,但效果很好。那么问题是什么?如果我单击链接,它会首次显示覆盖图。但是当我再次点击它时,它不起作用。它没有给出错误,没有任何类型的警告,基本上它应该可以工作,但实际上没有。

我已经尝试了我想到的所有方法(比如将 test_test() 函数简化为它的基础),但没有成功。所以我的想法已经用完了,如果有人有建议,我愿意倾听。

编辑:我发现如果我有另一个这样的链接:

<a class="modalInput" rel="#norel" remote="/test?t=694749&inner=1" wd="850" hg="500">Remote load</a>

我可以随心所欲地点击这个链接(这个链接创建随机的 div 附加在页脚中)但是在上面的链接之后(它在 HTML 中的某个地方有容器所以它不会生成任何东西),所有覆盖都是不再显示。

最佳答案

就像 andrew whitaker 说的那样,解决方案显示在 jQuery Tools alert works once (but only once)

总结:从覆盖参数中删除“load: true”,手动调用 .load()。

多次工作:

//call the overlay
$('#idofoverlay').overlay({
// load: true
}).load();

只工作一次:

//call the overlay
$('#idofoverlay').overlay({
load: true
});

缺点:

  • 与 jquery-tools overlay 结合,你松开了“关闭”项当这样称呼时

关于javascript - jQuery Tools Overlay 在第二次点击时不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com