我想通過鍵盤快捷鍵將一個特殊的id(在roundcube中)聚焦。在HTML是javascript/jquery:focus()不起作用
...
<div id="mainscreen">
<div id="messagetoolbar" class="toolbar">
<div id="mailview-left" style="width: 220px;">
<div id="mailview-right" style="left: 232px;">
...
我試過如下:
// Strg + Tab, um in Nachrichtenbereich zu kommen
...
else if (event.keyCode == 9 && event.ctrlKey) {
alert("taste erkannt");
//document.getElementById("messagetoolbar").focus();
//$("#messagetoolbar").focus();
setTimeout(function() { $('#messagetoolbar').focus(); alert("zeit"); }, 3000);
}
...
第一個提醒,並顯示在第二個警報,但沒有關注ID messagetoolbar。有人有想法嗎?
非常感謝。
編輯:我想我應該更好地描述它:我想標記第一行/電子郵件在電子郵件收件箱中的roundcube。收件箱是一個帶有tr標籤的表格......當我嘗試你的解決方案時,第一行也是點綴的,但是用Enter鍵我無法打開郵件和其他鍵我不能標記第一行/郵件...我想我必須「模擬左擊」來獲得第一行標記...?
現在我試圖使用jQuery的.trigger。收件箱,表的HTML是
<table id="messagelist" class="records-table messagelist sortheader fixedheader">
<thead>
<tbody>
<tr id="rcmrow27428" class="message">
<td class="threads"></td>
<td class="date">16.04.2014 13:41</td>
<td class="fromto">
...
我試圖用...
$('#messagelist tr').eq(1).addClass('message selected focused').removeClass('unfocused').trigger("click");
...但它不工作:它增加了一個刪除類,但並沒有真正重點行:-(隨着「按鈕,」它的工作原理
再次編輯:。我覺得roundcube的文件list.js對這個問題很重要有,我發現以下幾點:
/**
* Set focus to the list
*/
focus: function(e)
{
var n, id;
this.focused = true;
for (n in this.selection) {
id = this.selection[n];
if (this.rows[id] && this.rows[id].obj) {
$(this.rows[id].obj).addClass('selected').removeClass('unfocused');
}
}
// Un-focus already focused elements (#1487123, #1487316, #1488600, #1488620)
// It looks that window.focus() does the job for all browsers, but not Firefox (#1489058)
$('iframe,:focus:not(body)').blur();
window.focus();
if (e || (e = window.event))
rcube_event.cancel(e);
},
有誰知道如何修改或使用指的是我的問題?謝謝!
請注意,這需要jQuery UI,而不僅僅是jQuery。 –