更改ID后,旧的jquery点击处理程序仍处于活动状态

Kem*_*mal 0 jquery

我知道主题不清楚,但我找不到更好的句子.

我正在构建一个ajax表单.目前,我可以通过点击保存表单字段到数据库保存按钮,并从数据库中获得使用值编辑按钮.单击编辑按钮时,我也会更改保存按钮的#id .但按钮仍然是保存按钮,但我改变它的#id.

这是我的按钮:

<a class="btn" id="save_post">Save Post</a>
Run Code Online (Sandbox Code Playgroud)

当我点击编辑按钮时,我更改了表格值,并且还更改了"保存帖子"按钮的#id;

$('#save_post').attr('id','edit_save_post');
Run Code Online (Sandbox Code Playgroud)

毕竟,Firebug显示一切正常,#id改变了.

<a class="btn" id="edit_save_post">Save Post</a>
Run Code Online (Sandbox Code Playgroud)

但是,当我点击按钮时,它不会运行更新数据库,它会再次运行保存.我怎么能让浏览器忘记旧的#id?

谢谢,

Thi*_*ter 6

你最有可能使用$('...').click(yourfunction); 它来绑定你的处理程序.此时将它们绑定到匹配的元素.

如果要动态添加/更改元素,请使用实时事件: $('...').live('click', yourfunction);

更新:

.live()现已弃用; 使用$(ancestor).on('click', 'selector', yourfunction),而不是用ancestor作为一个元素或已经存在并且包含所选择的相关元素选择器selector; 模仿.live()document用作祖先.