jQuery on()没有通过ajax调用,但在独立调用时工作

时间:2013-02-26 12:06:54

标签: jquery

这是一个奇怪的..

基本上我有一个三阶段表格,可自动保存状态。

当您单击第一个提交按钮时,它会通过ajax加载第二个阶段。

如果刷新页面,它会使用会话数据重新加载第二阶段(但不能通过ajax)。

在表单的第二个阶段是一个按钮..当用户点击它时,我想调用一些jquery并发出警报。

我的代码如下:

    $(document).on("click","#submity",function(event){
event.preventDefault();
alert('lol');


    });

这包含在初始页面加载时加载的外部js文件中的文档就绪语句之间。它在jQuery库之后加载,并且正在正确导入。

当第二页由ajax加载时,单击该按钮绝对没有任何效果。直接加载时,它会按预期发出警报。我不能为我的生活找出原因吗?

关于SO的其他问题似乎与on()的委托相关,但据我所知,我已经正确完成了,类似的设置在网站的其他地方工作..

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

你可能在document#submity之间有一个对象,它有一个阻止事件冒泡的点击处理程序,使用event.stopPropagation()或返回false;

您的代码的工作原理如下:在单击的对象(#submity)上创建click事件并传递DOM层次结构,直到它到达jQuery调用事件处理程序的document。如果在中间某处取消该链,则永远不会调用该处理程序。

您是否可以在ajax调用期间或之后分配click事件处理程序?

没有代码就很难诊断出来。你可以发布一个链接吗?

答案 1 :(得分:-1)

在页面上加载动态加载按钮后,必须绑定.on()事件,或使用过时的.live()。所以在ajax成功回调中绑定东西