2012-01-29 25 views
5

Powiel możliwe:
Jquery Chosen focus on page load (onLoad?)jQuery ostrości nie działa z wtyczką wybranego

używam jQuery plugin wybrana (http://harvesthq.github.com/chosen/), aby utworzyć bardziej użyteczne wybierz pola.

Jednak zdarzenie focus jQuery nie działa z tą wtyczką.

mój kod html:

<select class="product"> 
<option value="1">Product One</option> 
<option value="2">Product Two</option> 
</select> 

i kod javascript:

$('.product').chosen().focus(); 

nie skupia się element ..

tutaj jest mój jsFiddle: http://jsfiddle.net/JigneshManek/queZ6/11/

jest tam jakąkolwiek inną metodę lub zdarzenie określone w wtyczce, aby skoncentrować element?

Odpowiedz

10

Ta biblioteka wygląda ładnie, ale wydaje się, że nie pozwala na połączenie z nią poza ustawieniem początkowych parametrów.

Nadal, spróbuj tego:

$('.chzn-single').focus(function(e){ 
    e.preventDefault(); 
}); 
$('button').click(function() { 
    $('.chzn-single').focus(); 
}); 

Co się dzieje, jest $('.chzn-single'), który jest elementem a, dostaje koncentruje poprzez rozdzielaniem, Chosen słucha tego zdarzenia i powoduje aktywację pola i koncentruje pojemnik. Musiałem dodać preventDefault do zdarzeń kliknięcia, aby zachować koncentrację na kontenerze.

W każdym razie wygląda na to, że działa.

1

Problem polega na tym, że oryginalnego pola wyboru już nie ma i zostało zastąpione przez <div> i niektóre <ul> s, więc standardowe zachowanie przeglądarki focus na sterowaniu wejściowym nie jest już istotne. Będziesz musiał przejrzeć bibliotekę i zobaczyć, jak przechwytywać zdarzenia kluczowe, aby stworzyć wirtualny fokus. jeśli masz szczęście, autorzy bibliotek myśleli o tym i zapewnili ci trochę haczyków.

0

Ten temat jest prawie lat, ale dla kogoś, kto może potrzebować go:

ponownego ustawiania ostrości pole z listy rozwijanej po Element został wybrany I edycja wybranego źródła: wewnątrz funkcji * Chosen.prototype.choice_build = function (pozycja) {*: dodany

this.container_mousedown();

to jest brudny Hack and częściowe rozwiązanie, aby osiągnąć ponowne skupienie, ale wydaje się działać dla mnie na v.0.9.8 wtyczki. Jeśli ktokolwiek może doradzić lepsze rozwiązanie - chętnie go przyjmę.

8

Po wydaje się działać dla mnie:

$('.chzn-container').mousedown(); 
+1

-1: To nie tylko koncentrować się element. Otwiera także opcje w elemencie.Nie jest to, co fokus zrobiłby na wybranym wejściu. –