2016-08-01 172 views
0

我想將div添加到另一個divs。這工作正常。在這裏我需要一些幫助,在下面的代碼中有一個帶有內容可編輯的div和一個保存並關閉按鈕。當我點擊附加到div的保存按鈕。但是當我按下Enter按鈕時,我需要使按鈕可點擊。輸入按鈕時觸發按鈕

function createNewList(listName) { 
 
    var cardNameFieldElement = $('<div class = "card-name-field" onkeydown=\'cardSave\' style = "white-space : normal; width: 240px; min-height: 60px; border-radius: 3px; margin-left: auto; margin-right: auto; background-color: #ffffff; " contenteditable = "true" data-placeholder = "Add a Card..." ></div>'); 
 
    var saveCloseCardWrapper = $('<div class ="save-close-card-wrapper" style = "width: 250px; height: 35px; margin-top: 5px;"> \t \t <input class = "save-card" id = \'SAVE_CARD_BTN\' onclick = \'saveNewCard($(this))\' type="button" value="Save" style = "cursor: pointer; width: 60px; height: 30px; background-color: gray; border-color: gray; margin-left: 10px; border-radius: 3px; vertical-align: top;"><img class = "close-card-create" onclick = \'closeCard($(this))\' src = "media/icons/close.png" width="25" height="25" style = "cursor: pointer; margin-top: 4px; margin-left: 3px;"></div>'); 
 
} 
 

 
function saveNewCard(saveCard) { 
 
    var parent = saveCard.closest('.board-list'); 
 
    var cardName = parent.find('.card-name-field').text(); 
 
    if (cardName !== "") { 
 
    var cardNameElement = $('<div class = "card-name">' + cardName + '</div>'); 
 
    cardNameElement.insertBefore(parent.find('.create-card-section')); 
 
    parent.find('.card-name-field').html(""); 
 
    } 
 
}

請看看代碼,給我一些幫助。我試過這種方法,但它不起作用。使用

$(".card-name-field").keyup(function(e) { 
    if (e.keyCode == 13) { 
    $(".save-card").click(); 
    } 
}); 
+0

閱讀有關[__'Event delegation'__(https://learn.jquery.com/events/event-delegation/) – Rayon

+0

你可以把將您的控件放入表單中,並將所需的方法調用爲form的提交。 –

+0

@Melbin「enter」事件是否正常工作?因爲我認爲您正在動態生成html內容,所以有時事件偵聽器附加到它不起作用,因此您必須在插入動態內容之前引用已經存在的父元素。因此,您將eventlistener附加到動態創建的元素,如'$(document).find(「.card-name-field」).keyup(...'和$(document).find(「。save-card」)。點擊(「..」。還有一種方法可以做到這一點。 –

回答

1

trigger("click")代替click()

$(".card-name-field").keyup(function(e) { 
    if (e.keyCode == 13) { 
    $(".save-card").trigger("click"); 
    } 
});