Jquery在单击时没有任何行为
我有一个id为Jquery在单击时没有任何行为,jquery,Jquery,我有一个id为#wrapper的div。在它旁边我有一个按钮。单击按钮时,会触发一个ajax调用,返回一个div列表,其中包含一个名为.calendarDate的类。一切都很好,#包装器填充得很好 现在我试图在.calendarDate类上创建一个click事件,但它不起作用。奇怪的是,我应用于该类的CSS属性工作正常。希望有人能承认这种奇怪的行为。顺便说一下,我的调试器中没有错误。提前感谢您的回复。干杯马克 我的PHP:工作得很好 Here i set my variables... whi
#wrapper
的div。在它旁边我有一个按钮。单击按钮时,会触发一个ajax调用,返回一个div列表,其中包含一个名为.calendarDate
的类。一切都很好,#包装器
填充得很好
现在我试图在.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 '<div class="calendarDate" indiDate=' .$attribut. '>' .date('Y-m-d', strtotime($test)). '</div>';
}
我的HTML:
<div id="wrapper"></div>
<input id="envoyer" type="submit" multiplicateur="1">
问题的一个可能原因(在没有看到代码的情况下无法确定)是您试图在页面加载时绑定单击事件,因此.calendarDate
元素不存在。确保在将.calendarDate
元素添加到页面之前,不要为.calendarDate
元素添加单击事件。听起来好像是在将单击事件绑定到calendarDate类之前。请尝试使用此绑定事件处理程序
$(document).on("click", ".calendarDate", function() {
// etc
}
这将对具有calendarDate类的所有元素触发click事件处理程序,而不管它们是否存在于文档就绪状态
$('.calendarDate').bind('click', function() {
alert('Replace the alert with your code.');
});
这就是我所能说的,不用看你的代码来检查错误。如果您有动态生成的元素,请尝试将.bind()替换为.live()。您可以将单击事件绑定为
单击
。而是使用或。如果您使用的是jQuery<1.7,则应使用.delegate()
:
如果您使用的是jQuery 1.7+,那么应该使用.on()
:
在document ready中绑定事件时元素不存在?在ajax调用成功并将标记注入dom后,您需要将click事件绑定到
.calendardate
,或者使用.live
或.delegate
而不是。单击我们需要查看您的代码。把它放在一个粘贴箱里。更好的方法是:制作一个演示并在这里发布相关信息。你真的希望有人能帮你,告诉我们我有a和b,但行为z不起作用吗?我不能做JS小提琴,因为我的div是由ajax填充的call@FelixKling这类问题“通过AJAX加载后,我的点击事件不起作用”告诉Everything,即使没有代码。。但是您是对的。@dfsq:据我们所知,OP也可能在回调中绑定了事件处理程序,问题可能完全不同。如果是关于代码的问题,它应该包括代码。$(“文档”)
应该是$(文档)
,或者为什么不$(document.body)
@FelixKling Ooops!谢谢:)我使用文档是出于习惯。公平地说,我建议使用最近的容器,但这只是一个工作示例。你太棒了!它起作用了:)不过我不太明白你的解释。我将在jquery网站上查询。on()。谢谢你的帮助,伙计。On只是一个事件绑定器,但是,是的,请查看jQuery网站,因为您知道他们的文档通常都很优秀。@FelixKling。或者为什么不`$('body')…=)你好。你的解决方案也很有效。我需要了解一下,因为我不知道那是什么。谢谢…谢谢吉姆,你的解释让我更明白了
$('.calendarDate').bind('click', function() {
alert('Replace the alert with your code.');
});
$('#wrapper').delegate('.calendarDate', 'click', function() {
// this should work
});
$('#wrapper').on('click', '.calendarDate', function() {
// this should work
});