我正在使用下面的代碼來包裝複選框。jQuery wrap()on()
$('input[type="checkbox"]').wrap('<div class="checkableBox"/>');
這在第一頁上運行良好,但每當使用AJAX從數據庫加載一些新的複選框時,它停止包裝它們。
那麼如何使用jQuery on()來防止aobe問題呢?還是有其他方法可以解決這個問題嗎?
問候
我正在使用下面的代碼來包裝複選框。jQuery wrap()on()
$('input[type="checkbox"]').wrap('<div class="checkableBox"/>');
這在第一頁上運行良好,但每當使用AJAX從數據庫加載一些新的複選框時,它停止包裝它們。
那麼如何使用jQuery on()來防止aobe問題呢?還是有其他方法可以解決這個問題嗎?
問候
調用它在阿賈克斯成功
$.ajax({
success:function(){
$('input[type="checkbox"]').each(function(){
if(!$(this).parent().is('.checkableBox'))
{
$(this).wrap('<div class="checkableBox" />');
}
});
}
});
這是因爲,當你第一次把它稱爲「額外」的元素不是DOM的一部分。把你的代碼放到一個函數:
function wrapChecks(){
$('input[type="checkbox"]').wrap('<div class="checkableBox"/>');
}
然後調用頁面加載這一功能,然後再在 Ajax回調。
基本上是一個很好的方法,但不是會導致多個'div's周圍的已經做完複選框被包裹?更好:「AJAX」成功函數中的包裝應該僅在新添加的DOM元素上執行,而在所有的input [type = checkbox]元素上執行* not *。 – cars10m
你是否調用jquery函數來執行這個命令ajax更新後頁面?如果不是,你應該這樣做。
正如Jose所建議的那樣,把這個包裹放在一個函數中。
一旦ajax查詢將更多複選框加載到網站中,請執行一個檢查(例如:.change()事件到父分區並調用該函數以包裝其中的新數據(如果尚未包裝的話) )
您可以使用.parent()函數來檢查父div是否爲「可選框」。如果不是,則將新加載的複選框與div可複選框包裝起來。再次
我也檢查過已包裝的複選框。 –