2016-08-25 64 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点击处理程序。 –