我花了我的时间在SO上寻找答案,所以这里有。鉴于此代码在js
中创建导航手风琴$("#accordion").accordion({
fillSpace: true,
collapsible: false,
navigation: true
});
这将在我的视图中填充(为清晰起见,大多数已删除)
<h2>
<a href="#">Messages</a></h2>
<ul class="menulist" id="messagesNavItems">
@Html.MenuItem("Messaging", "InterOffice", "Message", "selected")
@Html.MenuItem("Outbox", "Outbox", "Message", "selected")
@Html.MenuItem("Inbox", "Inbox", "Message", "selected")
</ul>
呈现
<ul id="messagesNavItems" class="bunch of classes" role="tabpanel">
<li>
<a href="/Buyer/Message/InterOffice">Messaging</a>
</li>
<li>
<a href="/Buyer/Message/Inbox">Inbox</a>
<li>
<li>
<a href="/Buyer/Message/Outbox">Outbox</a>
<li>
</ul>
如何从页面的其他部分模拟点击发件箱?
我可以使用
弹出“标题”var accordionindex = 5; /*Messages*/
$("#accordion").accordion('activate', accordionindex);
但是我需要将它提升到一个新的水平并“点击”该项目,然后导致浏览器导航。
谢谢你, 斯蒂芬
答案 0 :(得分:0)
未经测试的代码:
$("#messagesNavItems a[href$='Outbox']").click();
答案 1 :(得分:0)
好吧,我必须给予信用到期的一些信用,kannix谁在选择器上建议了点击方法,但在我的情况下,无论出于什么原因仍然没有激活链接并导致导航发生。
我最终要做的是将click事件首先绑定到锚点
$("#messagesNavItems a[href$='Inbox']").on('click', function() {
alert('Inbox was clicked');
window.location.href = $(this).attr("href");
});
确实响应了jQuery Accordion外部的程序化点击。
以下是所有相关代码,首先设置要打开的右侧面板,然后点击并跟踪链接。
$(function () {
$("#messagesNavItems a[href$='Inbox']").on('click', function() {
window.location.href = $(this).attr("href");
});
$('iframe').load(function () {
$(this).contents().find("a[href='messages/list.asp?pjid=&box=in&sf=mesibox']").click(function (event) {
event.preventDefault(); /* the frame link we are clicking shound not navigate */
var accordionindex = 5; /*Messages*/
$("#accordion").accordion('activate', accordionindex);
$("#messagesNavItems a[href$='Inbox']").click();
});
});
});