2014-02-04 4 views
0

Привет У меня есть JQuery, который выглядит следующим образом:Как присвоить класс кнопки JQuery вар

var autoStart = true; 

jQuery(document).ready(function($) { 

    $('.royalSlider').each(function() { 

     var autoStart = true; 
     var slider = $(this); 
     var button = $('<button>pause</button>').insertAfter(slider).click(function() { 

     if(autoStart) { 
      $(this).html('play'); 
     } else { 
      $(this).html('pause'); 
     } 
     autoStart = !autoStart; 

     slider.royalSlider('toggleAutoPlay'); 
     }); 

    }); 

Я хотел бы назначить некоторые CSS на кнопку в этом коде, как я назначить класс к этой кнопке? Благодаря

ответ

3

# 1 Самый простой способ будет просто включить class='class-name' в вашем определении кнопки.

# 2 Второй простым способом было бы добавить id='button-name' к определению, а затем сделать:

$("#button-name").addClass("class-name") 

... после того, как кнопка вставляется в DOM.

# 3 Третьи/труднее всего было бы не добавить class или id, и работать с содержимого. Вы бы:

$("button:contains('pause')").addClass("class-name"); 

# 1, безусловно, самый быстрый и. Никакой дополнительной обработки вообще! Просто сделайте это:

var button = $('<button class="class-name">pause</button>') ... 

Для оптимизации еще дальше, сделать это:

function toggleAutostart(autoStart) { 
    if (autoStart == undefined) autoStart = true; 

    if(autoStart) { 
     $(this).html('play'); 
    } else { 
     $(this).html('pause'); 
    } 
    autoStart = !autoStart; 

    slider.royalSlider('toggleAutoPlay'); 
} 

jQuery(document).ready(function($) { 
    $('.royalSlider').each(function() { 
     $('<button class="class-name">pause</button>') 
      .insertAfter($(this)) 
      .click(toggleAutostart); 
    ); 
}); 
+0

Много вариантов, спасибо. Где именно я бы поставил определение класса? Я делаю это в коде, где он впервые введен (var button = $ ...), или я делаю это в следующей строке, как-то ссылаясь на кнопку? – user2502562

+0

Обновлен мой ответ для вас! – digitalextremist

+1

безупречный! Thanks – user2502562

0

Создать элемент the jQuery way

var btn = $('<button />' , { 
     text : 'pause', 
     'class' : 'myClass', 
     click : handleClick 
}).insertAfter(slider); 

function handleClick() { 
    $(this).html(autoStart ? 'play' : 'pause'); 
    autoStart = !autoStart; 
    slider.royalSlider('toggleAutoPlay'); 
} 
+0

отличный вариант, спасибо! – user2502562

Смежные вопросы