单击时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()。