我有一个页面上有许多对象,其中一些可以根据用户请求删除。我想使用jQuery Tools yes / no overlay来表示“你确定吗?”在执行删除之前,向用户键入对话框以获取确认。我已经改编了jQuery Tools demo,并让它工作,至少到了它没有的地步......
我已经按照流程图演示程序为每个“删除此东西”链接创建了叠加层,点击它们就可以正确显示叠加层。我现在需要的是处理单击的代码检查单击的按钮,如果单击“是”按钮,则从链接获取href并将页面重定向到该位置。正如我所看到的那样,问题是附加到包含yes和no按钮的DIV的click处理程序没有任何方法可以判断哪些链接被单击以导致其调用,因此它无法获得适当的href。 flowplayer演示中的click处理程序假定页面上只有一个位置可以调用覆盖。这对我不起作用 - 我有很多。
所以:有没有办法让这个工作?必须有一些东西,但此时我的大脑已经筋疲力尽了。谢谢你的帮助。
包含链接的链接如下:
<li class='yuimenuitem'><a class='yuimenuitemlabel modalInput' rel='#yesno' href='/slate/delete/12345'>delete this item</a></li>
分配给叠加层的点击处理程序与流程演示程序中的内容基本没有变化。
答案 0 :(得分:1)
您可以使用叠加层的onBeforeLoad事件设置一个变量,其中包含所单击按钮的ID。
然后,当他们单击是或否时,该按钮可以检查该变量并为用户加载正确的URL。这是未经测试的,但这样的事情应该有用......
var clicked;
var links = [];//put a hash of button id's and links in here
var triggers = $(".modalInput").overlay({
mask: {
color: '#ebecff',
loadSpeed: 200,
opacity: 0.9
},
onBeforeClick: function(event) {
var element = e.originalTarget || e.srcElement;
clicked = element.id
},
closeOnClick: false
});
var buttons = $("#yesno button").click(function(e) {
var yes = buttons.index(this) === 0;
if(yes) {
window.location = links[clicked];
}
});