2012-05-21 2 views
4

Мне было интересно, как я могу заставить jquery UI не добавлять какой-либо класс, когда он инициализирует $.tabs()?jquery UI disable theme styling

Это мой HTML структура

<link href="smoothness/jquery-ui-1.8.20.custom.css" rel="stylesheet" type="text/css" /> 
... 
<link href="estilos_scoreboard.css" rel="stylesheet" type="text/css" /> 
... 

<div id="tab_container"> 
    <ul class="ui-tabs-nav"> 
     <li><a href="#tab_equipos"><span>Equipos</span></a></li> 
     <li><a href="#tab_jugadores"><span>Jugadores</span></a></li> 
     <li><a href="#tab_partidos"><span>Partidos</span></a></li> 
     <li><a href="#tab_directos"><span>Directos</span></a></li> 
    </ul> 

    <div id="tab_equipos">... cargando ...</div> 
    <div id="tab_jugadores">... cargando ...</div> 
    <div id="tab_partidos">... cargando ...</div> 
    <div id="tab_directos">... cargando ...</div>  
</div> 

Javascript код:

$(document).ready(function(){ 
    $('div#tab_container').tabs(); 
    $('div#tab_equipos').load('lv_equipos.php'); 
}); 

В estilos_scoreboard.css У меня есть свои стили CSS, который отлично работает, если я не нагружают smoothness/jquery-ui-1.8.20.custom.css

Так что я был интересно, есть ли способ сказать $.tabs() не применять ни один из его стилей?

// Примечание: Я спрашиваю это потому, что я не один, что код это так, но один, чтобы применить быстрые решения, и мне нужно smoothness/jquery-ui-1.8.20.custom.css для JQuery UI автозаполнения и другие особенности

ответ

0

Ну, я решил для ноу просто использовать простой, если :

<?php if($_ADM['mod'] == 'scoreboard') { ?> 
    <link href="estilos_scoreboard.css" rel="stylesheet" type="text/css" /> 
<?php } else { ?> 
    <link href="<?=BASE_URL;?>assets/css/smoothness/jquery-ui-1.8.20.custom.css" rel="stylesheet" type="text/css" /> 
<?php } ?> 
+0

Также есть возможность, но вы по-прежнему сохраняете 'ui- *' в своем коде. –

4

Насколько Я знаю, это невозможно сделать с помощью кода/параметров по умолчанию. Однако вы можете удалить все классы jQuery после применения вкладок.

Библиотека jQuery использует префикс ui- для всех классов, поэтому вы можете удалить все эти классы сразу после применения ваших вкладок/плагинов.

Это должно работать:

removeByClassPrefix(document.getElementById("element"), "ui-"); 

function removeClassByPrefix(el, prefix) { 
    var regx = new RegExp('\\b' + prefix + '.*?\\b', 'g'); 
    el.className = el.className.replace(regx, ''); 
    return el; 
} 

Или:

$("#element").className = $("#element").className.replace(/\bui-.*?\b/g, ''); 

Над функцией благодаря Prestaul этого ответа: Remove all classes that begin with a certain string

+0

О, никогда не думал об этом как о решении ... спасибо – Alex

+2

Попробуйте это вместо: $ ("# element"). Attr ("class", $ ("# element"). Attr ("class"). Replace (/ \ bui- \ S + \ b/g, '')); – David