我创建了一个看起来像这样的 html 页面:
<body>
...
<div id="calendar-cont">
...
<div id="overview">
<div id="overview-type">
<h3>Selected Shift Type</h3>
<div id="selected-shift-type-cont"></div>
</div>
<div id="overview-dates">
<h3>Selected Dates</h3>
<ul id="selected-dates-cont"></ul>
</div>
<a href="#" id="submit-overview">Submit</a>
</div>
</div>
</body>
我还有一个用于标签的 jQuery 点击监听器:
$("#submit-overview").click(function() {
console.log("click");
submitDates();
});
只要 DOM 保持现在的状态,这个监听器就可以工作。每当我向selected-shift-type-cont
或selected-dates-cont
监听器添加一个元素时,它就不再工作了。有谁知道为什么会出现这个问题?
我以这种方式添加元素:
var tmp = new Date(date.getTime());
dates[dates.length] = tmp;
$("#selected-dates-cont").append("<li>" + getDateString(tmp, "dd.mm.yyyy") + "</li>");
和
$("#selected-shift-type-cont").html("<div>" + shiftType.name + "</div>");
一旦执行了这两条代码之一,我就无法再单击锚点。
更新:
我使用 jQuery 1.9.1。我还使用 Chrome(版本 28.0.1500.71)进行开发。当我在 Firefox 22 上测试它时,一切都按预期工作。由于我使用 jQuery .load() 方法根据用户在导航栏中单击的内容来更改主要内容。因此,我需要在 localhost 上运行网站,我使用python -m SimpleHTTPServer 8001
Mac 上的命令执行此操作。该命令从我调用该命令的目录启动一个网络服务器。这些因素之一是否可能是问题所在
更新 2:
直到现在我才提到我使用了 fullCalendar jQuery 插件。我还创建了一个 jsFiddle 来重现问题http://jsfiddle.net/XagK5/3/。它包含所有重要部分,我还包含了整个 fullCalendar 缩小的 javascript 代码,因为我不知道如何包含外部脚本。
更新 3:
如果我添加以下 CSS,它确实有效:
#submit-overview {
position: relative;
z-index: 99;
}