单击时Jquery没有任何行为

我有一个名为#wrapper的id。 我旁边有按钮。 单击该按钮时,将触发ajax调用,返回带有名为.calendarDate的类的div列表。 一切都很好, #wrapper很好。

现在我试图在.calendarDate类上有一个click事件,但它无法正常工作。 奇怪的是我应用于该类的CSS属性正常工作。 希望有人能够承认这种奇怪的行为。 按他的方式,我的调试器没有错误。 提前感谢您的回复。 干杯。 渣

我的PHP:工作得很好

 Here i set my variables... while($input<$inDays){ ++$input; $test=$input." days"; if($input<0){$attribut='"avant"';}else{$attribut='"apres"';} echo '
' .date('Ym-d', strtotime($test)). '
'; }

我的JS:

 $(document).ready(function() { $('#wrapper').load('php/calendar2.php'); $('.calendarDate').click(function(){ alert('Whaou!'); }); }); 

我的HTML:

 

听起来你将click事件绑定到calendarDate类,然后才存在。 尝试使用它来绑定事件处理程序而不是……

 $(document).on("click", ".calendarDate", function() { // etc } 

这将触发click事件处理程序到具有calendarDate类的所有元素,无论它们是否存在于文档就绪。

您可以通过单击来绑定单击事件。 而是使用delegate或。 如果你使用jQuery <1.7,你应该使用.delegate()

 $('#wrapper').delegate('.calendarDate', 'click', function() { // this should work }); 

如果您使用的是jQuery 1.7+,则应使用.on()

 $('#wrapper').on('click', '.calendarDate', function() { // this should work }); 

问题的一个可能原因(如果没有看到代码就无法确定)是您在页面加载时尝试绑定click事件,因此.calendarDate元素不存在。 在将.calendarDate元素添加到页面之前请确保不添加.calendarDate元素的单击事件。

在文档准备中绑定事件时,该元素不存在? 在ajax调用成功并且您已将标记注入dom之后,您需要将click事件绑定到.calendardate – 或者使用.live.delegate而不是.delegate

 $('.calendarDate').bind('click', function() { alert('Replace the alert with your code.'); }); 

如果没有看到您的代码来检查错误,那就是我能说的全部内容。 如果您有动态生成的元素,请尝试使用.live()替换.bind()。