2016-08-01 4 views
0

divを別のdivに追加しようとしています。それはうまく動作します。ここで私はいくつかの助けが必要です。下のコードでは、編集可能なコンテンツの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

あなたのコントロールをフォームに変換し、目的のメソッドをフォームのonsubmitに呼び出します。 –

+0

@Melbin 'enter'イベントは機能していますか?ダイナミックコンテンツが挿入される前に既に存在する親要素を参照する必要があるので、時には動的にHTMLコンテンツを生成していると思うので、イベントリスナーをアタッチしても機能しません。したがって、イベントリスナーを、 '$(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"); 
    } 
}); 
関連する問題