0

我有我无法弄清楚的问题。这是代码

$('.new').click(function(e){
    e.preventDefault();
    $('#y').load('/y/y #x'), function(e) {};             
    showadd(); // function to call modal
    $("#x").attr("data-remote","true"); // making :remote => true 
});

现在问题是我想在我加载了上面代码的表单上绑定成功。唯一的问题是它不起作用!它仅在我从控制台添加后才有效。

所以我的绑定功能

$('#x').bind('ajax:success', function(evt, data, status, xhr){
    alert("YES");
});

现在,如果我将提到的代码放在 $('.new').click( ... 只有当我通过控制台添加时,它就不起作用了。

有没有办法删除与一个元素关联的所有其他绑定事件,并在每次调用函数时添加一个?

例如,我想做这样的事情

function makingAjaxRespond() {
// remove all associated binding with the form
// add one binding
// confirm that binding has been added
}

我很难弄清楚第一个提到的问题。有什么我想念的非常简单的方法吗?

感谢您的帮助和提前考虑。

4

2 回答 2

0

您是否在控制台中看到任何错误?问题就像您在$包含 jQuery 之前尝试使用,或者您尝试在 DOM 准备好之前选择元素。解决方案是使用$(function () { ... })并确保在包含 jQuery之后将其输出到您的文档中。<script src=...>

于 2013-03-27T16:47:39.620 回答
0

您可能想改用该on方法,听起来您的方法可能没有被绑定,因为该对象当时不存在?

尝试类似:

$(document).on('ajax:success', '#x', function(evt, data, status, xhr){
    alert("YES");
});
于 2013-03-27T16:44:39.717 回答