javascript/jquery: focus() funktioniert nicht
Möchte ich den Fokus auf eine spezielle id (in roundcube) durch eine Tastenkombination. Der html-Code wird
...
<div id="mainscreen">
<div id="messagetoolbar" class="toolbar">
<div id="mailview-left" style="width: 220px;">
<div id="mailview-right" style="left: 232px;">
...
Ich habe versucht, die folgenden:
//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);
}
...
Erste Warnung und die zweite Warnung wird angezeigt, aber kein Fokus auf id messagetoolbar. Hat jemand eine Idee?
Danke Ihnen sehr.
Edit: ich denke ich sollte er es besser beschreiben: ich möchte markieren Sie die erste Zeile/E-Mail in der E-Mail-Posteingang in roundcube. Der Eingang ist ein Tisch mit einem tr-tag..., wenn ich versuche, Ihre Lösung der ersten Zeile ist gestrichelt, auch, aber mit enter kann ich nicht öffnen Sie die E-mail und mit anderen Tasten, ich kann nicht MARKIEREN Sie die erste Zeile/E-mail... ich glaube, ich habe zu "simulieren Sie einen Links-klick" auf die erste Zeile markiert...?
Jetzt habe ich versucht, die Verwendung von jquery .trigger. Der html-Code der Posteingang-Tabelle ist
<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">
...
Habe ich versucht zu verwenden...
$('#messagelist tr').eq(1).addClass('message selected focused').removeClass('unfocused').trigger("click");
...aber es funktioniert nicht: Es fügt eine entfernt die Klassen aber nicht wirklich im Fokus der Linie 🙁 Mit "Knöpfen" funktioniert es.
BEARBEITEN WIEDER: ich denke, dass die Datei list.js von roundcube ist wichtig für diese Frage. Dort habe ich Folgendes gefunden:
/**
* 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);
},
Weiß jemand, wie zu ändern oder zu verwenden, bezogen auf meine Frage? Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen
tabindex=0
- Attribut der div-Sie wollen foucs und Sie werden in der Lage sein, setzen Sie den Fokus auf das div mit .focus()Tun, die Sie möchten, markieren Sie das div dann können Sie die jquery und folgenden code zu geben, highlight-Effekt.
Können Sie nicht Fokus-Steuerelemente wie
div
,span
etc. Sie können verschieben, dassdiv
bei Bedarf mit Buch markiert.Guten morgen,
Ich habe ein paar mal jetzt, dass man sich nicht konzentrieren, Tabelle Zeilen aber kann nur Fokus-Elemente, die akzeptiert Eingabe durch den Benutzer. Ansonsten denke ich, dass es einen Weg geben muss, um zu simulieren, ein Klick auf eine Zeile in der Tabelle durch jquery/javascript! Ich habe versucht, die folgenden:
Wird die Warnung angezeigt!!! Aber die Zeile ist nicht "markiert"!?