我試圖在HTML元素被替換後立即觸發函數;然而,沒有任何事情發生。我已經閱讀了trigger()方法的jQuery文檔,但我仍然不確定如何使用它。我只想在replaceWith()方法之後立即同步觸發第二個函數。HTML元素的replaceWith()上的觸發函數()
這裏是我的代碼:
$('#dry-wet-table').on("custom", function() {
$(this).replaceWith('<table id="dry-wet-table"></table>');
})
$('#dry-wet-table').trigger("custom", function() {
$('#dry-wet-table').append("<tr><th>" + dryDietVal + "</th><th>" + wetDietVal + "</th></tr>");
$('#dry-wet-table').append("<tr><td>0</td><td>" + cansPerDay + "</td></tr>");
for (var a = cansPerDay - 0.25; a >= 0; a -= 0.25) {
if ($('#species option:selected').text() == "Cat") {
$('#dry-wet-table').append("<tr><td>" + ((parseFloat($('#calories').val()) - (parseFloat($('#diet-select-wet-cat option:selected').val()) * a))/parseFloat($('#diet-select-dry-cat option:selected').val())).toFixed(2) + "</td><td>" + a + "</td></tr>");
if (a == Infinity) {
a = 0;
}
}
else if ($('#species option:selected').text() == "Dog") {
$('#dry-wet-table').append("<tr><td>" + ((parseFloat($('#calories').val()) - (parseFloat($('#diet-select-wet-dog option:selected').val()) * a))/parseFloat($('#diet-select-dry-dog option:selected').val())).toFixed(2) + "</td><td>" + a + "</td></tr>");
if (a == Infinity) {
a = 0;
}
}
}
})
* UPDATE *
我已經找到了一個更好的辦法做到同步觸發這兩個功能,我已經回答了下面我自己的問題。
基本上,不是單獨使用trigger()方法,而是在完成觸發自定義事件後,可以使用jQuery.when()API來運行函數。
'$( '#乾溼表')的觸發器( 「自定義」);'觸發器沒有函數調用:HTTP: //api.jquery.com/trigger/ – mplungjan
我已經閱讀過文檔,但是它沒有解釋如何很好地使用trigger()函數。 – Sicypher
你爲什麼分裂功能?如果您想在觸發時執行某些操作,請將其餘代碼添加到自定義函數中。 – mplungjan