Twitter Bootstrap input elem focus javítás

Twitter Bootstrap használatakor feltűnhet, hogy nem működik a javascript-es .focus() függvény, amivel egy adott beviteli mezőbe tudnánk dobni a kurzort.

Pedig bizonyos esetekben ez a feature a felhasználónak kéjes örömöket okozhat!

A problémát a typeahead.js fájlban lévő kódrészlet okozza, amely blokkolja a default focus event-et.

( biztosan volt valami okuk arra, hogy ezt tiltsák, de kit érdekel, ha kell akkor kell )

A typeahead.js forrásában (kb a 316 – 321. soroknál) ezt az eseménykezelőt láthatjuk:


$(document).on(‘focus.typeahead.data-api’, ‘[data-provide=“typeahead”]’, function (e) {

    var $this = $(this);

    if ($this.data(‘typeahead’)) return;

    e.preventDefault();
    $this.typeahead($this.data());
})

Cseréljük le erre:


$(document).on(‘focus.typeahead.data-api’, ‘[data-provide=“typeahead”]’, function (e) {

    var $this = $(this);

    if ($this.data(‘typeahead’)) return true;

    $this.typeahead($this.data());

})

A default esemény így nincs tiltva és a focus rákerül a beviteli mezőre.
Probléma megoldva…

Advertisements