2012-04-15 61 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