2009-10-12 10 views
18

Korzystanie z biblioteki jQuery UI do wyboru(). Łącza w obrębie wybranych pozycji listy nie są śledzone po kliknięciu, tylko przez kliknięcie prawym przyciskiem myszy i otwarcie w nowym oknie lub karcie.jQuery UI do wyboru, linki nie są śledzone po kliknięciu

HTML

<ul class="selectable-list"> 
    <li> 
     <p>Visit Google.</p> 
     <a href="http://www.google.com">Google</a> 
    </li> 
    <li> 
     <p>Visit Apple.</p> 
     <a href="http://www.apple.com">Apple</a> 
    </li> 
    <li> 
     <p>Visit Microsoft.</p> 
     <a href="http://www.microsoft.com">Microsoft</a> 
    </li> 
</ul> 

CSS

.selectable-list li.ui-selected, .selectable-list li.ui-selected:hover { 
    background-color: #ccc; 
} 

JS

$(document).ready(function(){ 

    $(".selectable-list").selectable(); 

}); 

Odpowiedz

35

Metoda selectable() przyjmuje opcję o nazwie cancel. Domyślnie jest to ": input, option", ale możesz go użyć, aby zakotwiczenia nie pasowały do ​​zdarzenia, które można wybrać.

Dla kodzie:

$(document).ready(function() { 
    $(".selectable-list").selectable({ 
     cancel: 'a' 
    }); 
}); 
+0

Czy mogę wznowić wybieranie po uzyskaniu pożądanego linku? – windsound

+0

Och, człowieku, właśnie uratowałeś mi godziny kodowania. Dziękuję Ci! – Slavic

+2

Ja głosowałem to. Ale potem zorientowałem się, że opcja opóźnienia jest lepsza dla mojego przypadku użycia. http://api.jqueryui.com/selectable/#option-delay – Doug

1

Wybierana jest nadrzędne wydarzenia kliknij na href. Prawdopodobnie będziesz musiał przywrócić funkcjonalność nawigacji.

Jednak wydaje się to dziwnym zachowaniem, do którego strzelasz. Dlaczego miałbym kiedykolwiek chcieć zarówno wybrać coś, jak i podążać za linkiem (prawdopodobnie do nowego okna, które wtedy skupiłoby uwagę) w tym samym czasie?

+0

Tak, widzę, że wybierane są nadrzędne normalną funkcjonalność kliknięcia łącza. Pytanie brzmi, jakie są sugestie, jak to naprawić? Użytkownik wybierze pozycje z listy, aby zapisać na spersonalizowanej liście. Interakcja selectable() pokazuje, które elementy zostały wybrane do tej pory. Mogą także wybrać link w elemencie listy. – jerome

+0

No cóż, automatycznie podążając za odnośnikiem, prawdopodobnie nie jest to, co chcesz z punktu widzenia interfejsu użytkownika. Jeśli tak, użyj Jquery more, aby rozwinąć funkcjonalność OnClick po wywołaniu .selectable(). Zalecam jednak, aby połączenie było aktywne z (wybierz) później lub odwrotnie, gdzie kliknięcie jest zaznaczone, ale dodaje się link (otwarty adres URL) w tym samym wierszu za pomocą kliknięcia, aby otworzyć adres URL. –

+0

Doceniam Twoje zalecenia dotyczące zachowania interfejsu użytkownika. Rzeczywisty kod, nad którym pracuję, składa się z elementu listy zawijającego link do artykułu i dłuższego opisu wpisu artykułu, a następnie znacznika daty dla tego artykułu. Tak więc zawartość wewnątrz li jest większa i to jest li, który można wybrać, a nie sam link. Być może ten opis pomoże ci wyobrazić sobie, co próbuję zrobić. Czy masz konkretne zalecenie, w jaki sposób pozostawić li jako całość do wybrania, zachowując (lub ponownie dodając) funkcję łącza? – jerome

Powiązane problemy