に呼び出していない私はそうのような機能を持っている:jqueryの機能クリック
last_value = null;
$('td').click(function(e) {
console.log($(e.target).attr("id"));
if ($(e.target).is("td")) {
var the_form = $("#edit-form").detach();
if (last_value) {
$("#" + last_value.attr("id")).replaceWith(last_value);
}
last_value = $(e.target).clone();
$(the_form).removeClass("hidden");
var the_input = $(the_form).find("input.form-control");
$(the_input).attr("name", $(e.target).attr("id"));
$(the_input).attr("placeholder", $(e.target).text());
$(e.target).css('padding-top', 1);
$(e.target).css('padding-bottom', 1);
$(e.target).text("");
$(e.target).append(the_form);
}
});
これは、表のセルを取り、それが置き換えセルの内容が移入インラインフォームを生成することになっています。さらに、別のセルをクリックすると内容が元の値に戻るようにコードが追加されました。しかし、私が実行している問題は、これは、1つのセルをクリックすると仮定します。A.フォームは、必要な方法で表示されます。次に、セルBをクリックすると、フォームがそのセルに「移動」し、セルAの内容が元の値に戻ります。ここで再びセルAをクリックしたとします。この場合、フォームが表示されないだけでなく、セルBにも残ります。実際にはconsole.log
は起動しません。私はここで間違って何をしていますか?
あなたは何かエロスを受け取っていますか? – caramba
静的なHTML上でclickイベントを実行している場合は、既にロードされていることを覚えておいてください(つまり、 DOM。その場合、$( 'td).click()を使うことができますが、DOMの読み込み後にhtmlスニペットを作成して追加した場合は$(' td).on( 'click'、function(){})を使用します。 –
与えられた解決策が動作しない場合、あなたのコードにjsfiddleを用意することができます –