2011-11-02 98 views
1

如何删除属性第一是这样的图像,使用CMS产生日历和每个元件具有一个onclick事件从动态生成的元素

enter image description here

背面向前按钮时点击将发出新的ajax请求,并返回一组新的元素及其onclick事件

我要附加上的所有元素我自己的事件处理程序,所以我使用jQuery的委托方法在桌子上,选择所有

问题是在相同的2个事件触发时间,所以我要负onclick事件和火灾只是我的版本通过移除的onclick属性


元素由CMS生成:

<a class="elem" href="..." onclick="function()">text</a> 

我的委托方法的版本选择所有元素

$("table").delegate(".elem","click", function() { 
     //DO SOMETHING  
}); 

回答

1

尝试把这个你.delegate()调用之前:(未经测试)

$('table .elem').each(function(i, elem) { 
    elem.onclick = false; 
}); 

它基本上删除了每个元素的现有onclick,允许您用自己的函数替换它。

+0

当我按下下一首或预览一个月一套新的标签将是问题通过ajax调用加载并插入,并且它们还会有一个onclick事件 –

+0

您可以在ajax成功区域中设置一个函数,然后在该函数中运行此代码段,它将清除这些新元素的onclick事件也是如此。您可能必须编辑该功能才能选择新的元素,因此您不必杀掉自己可能添加的任何以前的onclick事件。 – Benjam

+0

所以ajax成功事件在元素插入到dom之前或之后运行? (该元素插入=成功ajax调用,然后插入元素的DOM)成功事件运行时?插入成功后还是插入后? –

0

在jQuery的1.7,他们推出的off方法,将

删除事件处理

http://api.jquery.com/.off/

+0

问题,当我按下一个或预览月份一套新的标签将通过ajax调用加载并插入,他们也将有一个onclick事件 –