2012-08-08 10 views
8

I noticed my links are having ui-link appended to it. Interfering with CSS, as jQuery Mobile has styled it differently. I could overwrite, but all I need is to remove the class. Instead of removing after it has been added, is it possible to prevent jQuery Mobile from adding the class?jQuery Komórka wyłączona dodanie `UI-link` do` <a />`

One way is http://forum.jquery.com/topic/a-s-still-styled-as-ui-link-despite-being-in-a-container-w-data-role-none ale wolę nie zmieniać źródło jQuery Telefony

Odpowiedz

10

Tylko patrząc na źródło jQuery Mobile dla v1.1.1 ... Widzę, że linki są wzmocnione w pagecreate i create zdarzenia z wyjątkiem następujących:

.not(".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')") 

znaczenie, powinno być możliwe, aby uniknąć wzmocnienia dodając .ui-btn lub .ui-link-inherit klasę lub dodanie data-role="none" lub data-role="nojs" atrybutu na linki.

To również wywołuje funkcję .jqmEnhanceable() na łączach, która z kolei wywołuje funkcję $ .mobile.enhanceable() i sprawdza, czy można ją poprawić, przechodząc elementy nadrzędne. Czy próbowałeś dodać data-role="none" do samych linków lub elementu opakowania?

Oczywiście można usunąć klasy po inicjalizacji jQuery Mobile, jednak odradziłbym to, ponieważ może to mieć negatywny wpływ na niektóre funkcje jQM. Zaryzykowałbym przypuszczenie, że jQM używa .ui-link do czegoś więcej niż tylko stylizacji.

$(document).bind('pageinit', function(event){ 
    $('.ui-link').removeClass('ui-link'); 
}); 
+13

Wszystko to działa i dziękuje za to, ale jQuery Mobile jest po prostu denerwujące. Jest tak nachalny, co jest przeciwieństwem jQuery. Mogłem zrozumieć, czy konieczne było dodanie linku .ui do wszystkich znaczników zakotwiczenia, ale jest to zupełnie niepotrzebne. jQuery Mobile po prostu wydaje się być tanim pakietem tematycznym, a nie mobilną biblioteką JavaScript. Nie tego oczekiwałem od jQuery. – Gavin

Powiązane problemy