![](/img/trans.png)
[英]Dynamically changing jqueryui accordion event handler from “click” to “mouseover”
[英]Which Click event handler is to use when changing the content dynamically in jQuery?
我在jQuery中有一个小应用程序,它使用锚元素的href
值并将其插入为div的ID。 div是一个基本的弹出窗口,仅在触发时才可见。
如果使用与弹出div的id
相同的href
值点击锚标签,则会触发弹出窗口。
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动态更改anchor href的内容。
题:
如何使原始代码按我期望的那样工作,因此客户端应只单击一次锚标记即可获得弹出窗口? 我还有什么需要考虑的吗?
$('#item1').on("click", function(e)
{
// Stuff goes here as above
});
$('#item2').on("click", function(e)
{
// Stuff goes here as above
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.