2012-04-15 59 views
0

无法对生成的ajax a元素执行click()。但我可以选择。Click to ajax generated'a'element

function cansel(){ 
    var cansel_button = document.getElementById('cansel_button'); 
    console.log(cansel_button); 
    console.log('post'); 
    cansel_button.click(); 
} 

而且我得到了这个日志:

<a id=​"cansel_button" style=​"text-decoration:​none;​" class="" onclick="">​…​</a>​ 
post 
extensions/event.js:185Error in event handler for 'undefined': TypeError: Object has no method 'click' 
    at cansel (unknown source) 
    at unknown source 
    at [object Object].dispatch (extensions/event.js:183:28) 
    at Object.<anonymous> (extensions/miscellaneous_bindings.js:177:22) 

是的,这是由Chrome扩展注入脚本。

UPD: 注入的页面有像$('#element').live('click', function(){ })这样的触发器,我需要在没有任何黑客的情况下执行此操作。

回答

1

document.getElementById方法返回DOM Element,它没有"click"方法您正在尝试调用。如果你想打电话click处理程序,那么你需要使用:

cansel_button.onclick(); 

,而不是cansel_button.click();

+0

查看我的更新问题。 cansel_button.onclick()没有我想要的,但不要做错误。 – RED 2012-04-15 12:06:30

+0

@RED你可以定义'function someClickHandler(){}'函数,并作为处理函数传递给'$('#element')。live('click',someClickHandler)'。然后,只要你想调用'someClickHandler() '功能。 – Engineer 2012-04-15 12:14:34

+0

我可以在没有黑客的情况下执行吗? – RED 2012-04-15 12:19:48