jQuery on()无法在Chrome,Safari中使用。适用于Firefox

时间:2015-11-20 17:48:12

标签: javascript jquery google-chrome firefox safari

我有一个页面,您点击日历日(例如1月1日星期一),并在页面上其他地方的div中的某些课程时间加载ajax,将每个文章包含在一个名为timeSpan的div中。然后我让用户点击其中一个时间(突出显示它)来选择一个。这在Firefox中很有用,但我今天发现它在Safari或Chrome中不起作用。 Haven没有尝试IE,因为我在Mac上。这是代码:

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

我把它作为.delegate()而不是.on(),这也很好。然后我在这里搜索并找到了使用.on的建议,所以我换了。仍然适用于FF,但不适用于其他任何内容。我使用的是jQuery 2.1.4,但如果需要,我可以更改。

这是渲染timeSpan divs的行:

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>";

任何想法如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:1)

由于您是动态生成html,因此需要在文档上委派click事件。

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 

});