jQuery on()在Chrome、Safari中不起作用.适用于Firefox

jQuery on() not working in Chrome, Safari. Works in Firefox

本文关键字:Safari 不起作用 适用于 Firefox Chrome on jQuery      更新时间:2023-09-26

我有一个页面,您可以在其中单击日历日(例如1日星期一),它将ajax加载到页面其他地方的div中的一些类时间中,并用一个名为timeSpan的类将每个类时间封装在div中。然后,我让用户点击其中一次(突出显示)来选择一次。这在Firefox中非常有效,但我今天发现它在Safari或Chrome中不起作用。我没有尝试IE,因为我在Mac上。这是代码:

jQuery.root.on("click", ".timeSpan", function(event) {

我把它作为.delete()而不是.on(),这也很好。然后我在这里搜索,找到了使用.on的建议,所以我切换了。仍然在FF工作,但在其他任何方面都不行。我使用的是jQuery 2.1.4,但如果需要,我可以更改。

这是呈现timeSpandivs:的行

html+= "<div class='timeSpan' data-classdate='" + class_date + class_date_endTime + "' data-date='" + class_date2 + "' data-eventid='" + eventid + "'>" + the_date + ",<br>" + start_time + " to " + end_time + "</div><br>";

有什么办法解决这个问题吗?谢谢

由于您是动态生成html的,因此需要委托文档上的单击事件。

html+= "<div class='timeSpan' data-classdate='" + class_date + class_date_endTime + "' data-date='" + class_date2 + "' data-eventid='" + eventid + "'>" + the_date + ",<br>" + start_time + " to " + end_time + "</div><br>";
$(document).on("click", ".timeSpan", function(event) { // delegates the click event on the dom and during event invocation checks class timespan 
});