JQuery事件令我烦恼。事情是,我经常使用JavaScript(在ajax请求之后)使用 来绘制新元素 (按钮,div等)。我有一个元素列表 ,您可以按下编辑按钮,这样您就可以操纵链接到所选编辑按钮的 。绑定JQuery事件
现在如果有人提交表单以创建一个新元素,就像之前存在的元素一样,然后我使用ajax提交它,然后将新元素附加或添加到列表中。之后, 新元素的新编辑按钮没有链接到JQuery的事件系统,因为在编辑按钮生成后DOM没有重新加载 。如果我将同样的 javascript文件与其中的事件调用,那么编辑按钮将起作用,但当人们点击其他编辑按钮时,该事件会发生两次,因为它们绑定了两次,因此它们会发生两次。我也使用.bind(),但只有 绑定(我认为)相同的事件两次。我不记得在 那一刻我如何测试它。我没有测试.one(),但我宁愿 不使用它,因为一些事件必须被多次调用。
我只是想问问你们在处理 事件时使用了什么方法?
P.S.我将JQuery事件绑定到所有元素都具有的类属性。如果我要根据ID将它绑定到每个元素上,那么这不会成为问题,因为那样我就会使用.bind()。通过编写这个,我突然使用.unbind()然后使用.bind()将元素链接到事件系统。你对那个怎么想的?你会用另一种方式去做吗?
在此先感谢。 Kristinn。
非常感谢。 – 2009-09-19 22:06:55
live()不适用于一切。如果你想用live()绑定一个不支持的事件,那么你运气不好。我在这种情况下做的是将一个.bind()调用放入我的reload()函数中(我称之为编辑后调用)。这工作得很好。 – Vince 2009-09-19 22:15:07
preventDefault()很容易被返回false所取代; 顺便说一句:) – 2009-09-19 23:17:50