0
私のコードに関する質問があります。どういうことが分かりますか? 関数submitColumnをコールします。私は要素を実際にクリックしないでjqueryを実行する関数でclick()を呼び出す
function submitColumn() {
//get textual input from the user.
var colName = document.querySelector("#txtCol").value;
var colType = document.querySelector("#selectType").value;
if (columnsArray.length > 0) {
for (var i = 0; i < columnsArray.length; i++) {
var count = undefined;
if (columnsArray[i] === colName) {
count = true;
} else if (columnsArray[i] !== colName) {
count = false;
}
}
if (count) {
return alert("You can not call two column with the same name");
} else {
$("<li/>").attr("id", colName + "id").addClass("colAndType").text("New column added with name: " + colName + " and type " + colType).appendTo("#colListUl");
$("#" + colName + "id").append('<span class="nav-click" />');
$(".nav-click").addClass("ui-icon ui-icon-closethick").attr("id", "close" + colName).click(deleteColumn(colName));
columnsArray.push(colName);
columnsTypeArray.push(colType);
}
} else {
$("<li/>").attr("id", colName + "id").addClass("colAndType").text("New column added with name: " + colName + " and type " + colType).appendTo("#colListUl");
$("#" + colName + "id").append('<span class="nav-click" />');
$(".nav-click").addClass("ui-icon ui-icon-closethick").attr("id", "close" + colName).click(deleteColumn(colName));
columnsArray.push(colName);
columnsTypeArray.push(colType);
}
}
function deleteColumn(idColumn) {
var idLi = idColumn + "id";
var close = "close" + idColumn;
console.log(close, idLi);
}
ありがとうございました@Archer、しかし、私は別の問題を抱えています。私は最初のelemだけで、他のものではなく、関数のクリック機能を呼び出すと、 –
$( "#close" + colName).click(function ){ \t \t \t \t deleteColumn(colName)}); –
関数を呼び出すときの値ではなく、関数を作成するときに 'colName'の値を使用するように、関数を別のエンクロージャに含めることができます。私は、コードを変更する予定です。 – Archer