2013-05-22 4 views
0

Я заменяю строку в таблице html после запроса ajax. После успешного запроса я получаю частичную часть html, которую я заменяю текущей строкой.Применить CSS/javascript после jquery replaceWith

$ ("# ID"). ReplaceWith (ответ)

Теперь я добавил поле ввода флажок, и я развалюха его с помощью этой CSS и JS библиотеки Bootstrap Switch

Таким образом, после я заменяю в строке я вижу только обычный нормальный входной флажок. И не симпатичный переключатель. Если я обновляю страницу, то отображается рендеринг.

Может ли кто-нибудь помочь мне и указать на проблему этой проблемы? Я попытался использовать триггер ('create') в строке и родительском.

Это код, который я использую для обновления таблицы, например, я упомянул, что он выполняет только replaceWith.

processRecord = (barCode, random_id) -> 
    postParams = { barCode: barCode, ran_id: random_id } 

    $.ajax 
    url: '/scans' 
    type: 'post' 
    data: postParams 

    success: (response, textStatus, xhr) -> 
     $("#" + random_id).replaceWith(response) 
     $("#scans").trigger('create') 

Я копал код переключения бутстрапа. Метод init приведет к добавлению дополнительного html к флажку ввода после рендеринга. Этого не происходит, когда я делаю замену. Посмотрите здесь: https://github.com/nostalgiaz/bootstrap-switch/blob/master/static/js/bootstrapSwitch.js#L14

Благодаря

+0

Если у вас есть события JavaScript, связанные с элементом, вам, вероятно, необходимо делегировать их родительскому элементу или запустить их заново после завершения «replaceWith». Без вашего кода мы не можем помочь вам дальше. – Blazemonger

+0

Можете ли вы попробовать $ ("# table_id_or_class"). Trigger ('create'); – vinothini

+0

Действие триггера не работает, к сожалению – Niels

ответ

0

Вы должны инициализировать переключатель плагин снова после замены элемента.

success: (response, textStatus, xhr) -> 
    $("#" + random_id).replaceWith(response) 

     // assuming #scans is the parent of inputs 
     var sc = $("#scans"). 

    if (!sc.hasClass('has-switch')) { // this is to prevent stacking 
    sc['bootstrapSwitch'](); // if has-switch is not found, use switch plugin 
    } 
Смежные вопросы