Я работаю над решением JQuery Solution, и по большей части оно работает, но я озадачен, казалось бы, мелкой деталью, которую, как я знаю, пропускаю. Черт, возможно, мою реализацию / подход нужно пересмотреть.
Вот последовательность действий.
1. Нажмите на якорь, который добавляет к таблице.
2. Добавьте CSS Class.
3. Отключите (Unbind) нажмите после preappend ().
4. Из таблицы динамически добавленных записей удалить таблицу на основе идентификатора.
5. удалить класс, добавленный на шаге 2.
6. Привязать 'click'
Однако,хотя я могу связать щелчок и предупредить о нем. Ожидаемая функциональность не позволяет мне снова выполнить вышеуказанный процесс.
Код, о котором идет речь:
ОБРАЗЕЦ HTML:
ссылкакоторый запускает процесс:
<a href="#" class="view-carrier-scorecard"></a>
<a href="#" class="view-carrier-trend"></a>
<a href="#" class="view-carrier-insurance"></a>
<a href="#" id="17053942" class="add-carrier-company"></a>
таблица, содержащая новые записи после щелчка по ссылке
<table id="carrier-table"><tbody></tbody></table>
JQUERY и пользовательская функция Javascript
<script type="text/javascript" id="removeCarrier">
function removeCarrierFromList(obj) {
var i = obj.parentNode.parentNode.rowIndex;
document.getElementById('carrier-table').deleteRow(i);
$('a#' + obj.id).removeClass('delete-carrier-company');
//alert(obj.id); //.hasClass('add-carrier-company').tostring() ); //
$('a#' + obj.id).bind('click', function() {
//alert('User clicked on ' + obj.id);
});
}
</script>
<script type="text/javascript" id="carrierListJS">
$(function() {
// Link
// This adds a carrier to a list
$('.add-carrier-company').click(
function() {
var target = $(this).attr("id");
alert(target);
$("#carrier-table").prepend("<tr id='carrierRow_" + target + "'>" +
"<td><a href='#' id='" + target + "' class='delete' onclick='removeCarrierFromList(this)'> </a></td>" +
"<td class='carrier-list-text'>" + target + " " + $("#name_" + target).val() + "</td>" +
"</tr>");
return false;
});
$('.add-carrier-company').click(
function() { $(this).addClass('delete-carrier-company').unbind('click'); }
);
});
</script>