我試圖打開qtip(v2.0.0),並讓它專注於鏈接 - 菜單中的第一項。 (更一般地說,我試圖用這個美妙的qtip作爲一種上下文菜單,並將注意力放在第一個li /菜單項上,以便他們可以方便地按下Enter而不必點擊)所以...如何專注於qtip內的元素(jQuery插件)
$("tr.request td").qtip({
content : {
text: $('#qtipMenu').clone(),
title : {button : true, text : ' '}
},
position : {my : 'bottom center' , at : 'top center'},
show : {event : 'click'},
hide : false,
events : {
show : function(){
var selector = "#" + this.id + " ul > li:first > a " ;
// for the sake of experiment...
$(selector).focus(function(){console.warn("focus on this "+this.tagName + " element!") })
// and the callback fires, but...
$(selector)[0].focus(); // doesn't work
$(selector).focus(); // doesn't work either
// nor does this:
$("div.ui-tooltip-content ul > li:first > a").focus();
// ...though I know I'm definitely addressing this element
// and can manipulate it in other ways
},
render : function(event) {
$("div.ui-tooltip-content ul").removeAttr('id').show()
}
}
});
}
FWIW,每個qtip的內容從一個隱藏的UL元件克隆,從而:
<ul id="qtipMenu" style="display:none" class="qtip-menu">
<li><a href="admin/requests/view">view details</a></li>
<li><a href="admin/requests/add">add to schedule</a></li>
<li><a href="admin/requests/delete">delete</a></li>
</ul>
和是它纏繞的(文檔)$。就緒內部(函數(){})。 「焦點」事件處理程序按預期觸發,但瀏覽器UI的實際焦點沒有發生(希望我清楚地解釋自己)。
任何想法?
...但我發現如果我第一次點擊工具提示中的某個地方,然後在控制檯中運行這個命令,就可以運行這個控制檯。 focus();' 它確實有效。那麼,如何以編程方式實現相同? – David