2017-01-04 7 views
0

Я тестирую второе решение, которое было предоставлено мне здесь, для проверки и записи каждого флажка, который был проверен. работает как шарм, но второе более эффективное решение даже не запускается.

for (x in aL.results) { 
    aLIds.push(aL.results[x].listing_id); 
    aLTitles.push(aL.results[x].title); 
    aLQuantities.push(aL.results[x].quantity); 
    aLDescs.push(aL.results[x].description); 
    aLTaxPaths.push(aL.results[x].Tax_path); 
    aLTaxIds.push(aL.results[x].Tax_id); 
    aLTags.push(aL.results[x].tags); 
    aLUrls.push(aL.results[x].url); 
    aLPrices.push(aL.results[x].price); 
    aLViews.push(aL.results[x].views); 
    aLHearts.push(aL.results[x].num_favorers); 

    $('#tblListings').append(
    '<tr>' + '<td><input type="checkbox" name="updateListings[]" value=' + x + ' ></td>' + '<td>' + aLQuantities[x] + '</td>' + '<td>' + aLTitles[x] + '</td>' + '<td>' + aLPrices[x] + '</td>' + '<td>' + aLViews[x] + '</td>' + '<td>' + aLHearts[x] + '</td>' + '</tr>' 
); 
} 

$('input:checkbox').change(function() { 
    alert('ah'); 
    var uLIndex = $('input:checkbox:checked').map(function() { 
     return this.value; 
    }).get(); 
    console.log(uLIndex); 
}); 
+0

Вам не хватает закрывающего '}' для цикла 'for'. Предполагается, что вызов '.change()' находится внутри цикла или после его завершения? – Barmar

+0

После того, как это было сделано, и его просто фрагмент плохо отредактировал код –

+0

Какое первое решение и второе решение? – Barmar

ответ

0

Для динамического создания элемента мы не можем связать событие непосредственно делать что-то подобное или live функции и эта функция удалена в 1.9 версии так убедитесь, что версия jquery, которую вы используете, или много способов вы можете найти на официальном сайте jquery

$('body').on("change","input:checkbox",function() { 
    alert('ah'); 
    var uLIndex = $('input:checkbox:checked').map(function() { 
    return this.value; 
    }).get(); 
    console.log(uLIndex); 
}); 

Обновлено

Добавьте класс CheckBox Регулярно проверяйте

$('#tblListings').append(
    '<tr>' + '<td><input class="check" type="checkbox" name="updateListings[]" value=' + x + ' ></td>' + '<td>' + aLQuantities[x] + '</td>' + '<td>' + aLTitles[x] + '</td>' + '<td>' + aLPrices[x] + '</td>' + '<td>' + aLViews[x] + '</td>' + '<td>' + aLHearts[x] + '</td>' + '</tr>' 
); 

И чем связывают события на все флажок с именем класса проверки, как показано ниже.

$('body').on("change",".check",function() { 
    alert('ah'); 
    var uLIndex = $('input:checkbox:checked').map(function() { 
    return this.value; 
    }).get(); 
    console.log(uLIndex); 
}); 
+0

'.live()' устарел много лет и был удален в jQuery 1.9. – Barmar

+0

О да, но мы не знаем, на какой версии jquery он использует anyways thanx для вас ценное предложение. Я обновлю свой ответ соответственно – Curiousdev

+0

Я использую 3.1.1 jquery –