私はJQueryソリューションを進めており、ほとんどの場合は機能しますが、見落としていることがわかっている細部に困惑しています。おそらく、実装/アプローチを再検討する必要があります。
これが機能するものの流れです。
1.テーブルに追加するアンカーをクリックします。
2.CSSクラスを追加します。
3. preappend()の後にクリックを無効(バインド解除)にします。
4.動的に追加されたレコードのテーブルから、IDに基づいてテーブルを削除します。
5.手順2で追加したクラスを削除し
ます。6。バインド'クリック'
ただし、クリックをバインドしてアラートを出すことはできますが。期待される機能では、上記のプロセスを再度実行することはできません。
問題のコード:
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>