我在jQuery中有一个小应用程序,它接受一个锚元素的href
值,并将其作为div的ID进行插入。 div是一个基本的弹出窗口,仅在触发时才可见。
如果使用与弹出div的href
相同的id
值单击锚标记,则会触发弹出窗口。
HTML代码:
<a href="#i1" id="item1">Item 1</a>
<a href="#i2" id="item2">Item 2</a>
<a href="#i3" id="item3">Item 3</a>
<div class="popup"></div>
jQuery代码:
var items = ["#item1", "#item2", "#item3"];
$.each(items, function()
{
$(document).on("click", this, function(e)
{
e.preventDefault();
var href = $(this).attr("href");
var length = href.length;
var anchor = href.substring(1, length);
var popup = $(".popup").attr("id", anchor);
});
});
问题:
一旦客户点击上面的任何锚点,就应该触发弹出窗口。但是,它只会在第二次单击时触发。我猜第一个设置了Id,第二个打开了设置值。
我还尝试使用其他类型的点击事件,它适用于第一次点击。这项活动一直在进行:
$(this).on("click", function(e)
{
// Stuff goes here as above
});
我的问题是我不能使用这种类型的事件处理程序,因为我将使用jQuery动态地更改锚点href的内容。
问题:
如何使原始代码按预期工作,因此客户端应该只点击一次锚标记以获取弹出窗口?还有其他我应该考虑的事情吗?
答案 0 :(得分:0)
$('#item1').on("click", function(e)
{
// Stuff goes here as above
});
$('#item2').on("click", function(e)
{
// Stuff goes here as above
});