2016-08-25 70 views
3

我正在嘗試使網頁更易於使用。目前,有一個帶有「刪除」按鈕的下拉菜單。當我檢查,它看起來像這樣:如何訪問隱藏的按鈕並單擊它們

<a title="" class="ajax-command" command="deletePost" href="#">Delete</a> 

有什麼辦法,我可以執行此操作嗎?我試圖創建一個新的按鈕來執行這個命令,而不需要下拉菜單。正是這種下拉菜單下的一組按鈕的一部分:

<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> 
         <li class="item"> 

我已經嘗試過複製的下拉選項的點擊,但我不能得到它的工作。任何幫助將是偉大的!

+1

其中AJAX命令?你已經展示了HTML ... j中的ajax表示javascript –

+1

純猜測...'document.querySelector('。ajax-command [command =「deletePost」])。click();' –

+0

哦!這工作!謝啦! – jimjamian

回答

2

模擬鏈接上的點擊事件,它隱藏並不重要。在這裏我要說明這一點通過編寫腳本,點擊隱藏式計算器下拉左鏈接:

image description

//直接從MDN

var evt = new MouseEvent("click", { 
    bubbles: true, 
    cancelable: true, 
    view: window 
}); 

var cb = document.querySelectorAll("div.js-help-dialog li:nth-child(3) a.js-gps-track"); 

var canceled = !cb[0].dispatchEvent(evt); 

這是你應該做的。如果您嘗試運行他們的AJAX請求,您會發現自己重新構建了整個應用程序前端的一半。

+0

感謝您的好評!我試着改變你的代碼以適應我的環境,但是我無法使它工作。我一直得到: 未能構造'MouseEvent':成員視圖不是Window類型。 – jimjamian

+0

看起來我使用前面的評論得到了這個工作,但爲了將來的參考,我想知道如何解決這個成員視圖問題,因爲這看起來非常有用。謝謝! – jimjamian

+0

@ user1262935'window'通常指瀏覽器中的全局範圍。如果它未定義或重新定義,您應該會遇到問題。但我認爲你可以忽略整個'view:window'部分,因爲它不需要這個。 **編輯**只是測試,即使只是'新的MouseEvent(「點擊」),它運作良好' –

3

jquery的溶液

$(".ajax-command[command='deletePost']").click() 
+0

感謝您的幫助,但這不起作用的原因。 – jimjamian

+0

也許'jQuery'不可用。或者可能在腳本加載後加載。或者,也許它只適用於jQuery點擊處理程序。 –