2017-01-04 62 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); 
}); 

更新

添加類複選框檢查

$('#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版本使用反正thanx爲您寶貴的建議,我會更新我的答案相應 – Curiousdev

+0

我使用3.1.1 jquery –