フォーカスブラーイベントでトリガされた要素(クリックイベントを使用)から値を取得する方法を知りたい。私はjQueryのdatepickerのようなアイコンピッカーを作成します。ここではコードですが、アイコンをクリックすると日付ピッカー要素は値を与えずに非表示になります。アイコンを選択するために使用される要素、:javascriptのフォーカスブラーイベントから要素値を取得する方法
PHPコード
<input id="contentIcon" class="form-control" type="text" name="content_icon" placeholder="pilih icon"/>
<div id="iconPicker" class="iconpicker dropdown-menu">
<div class="iconpicker-wrapper">
<table class="dt-icons">
<?php
foreach (array_chunk($icons, 5, true) as $icon_cunk) {
echo '<tr>';
foreach($icon_cunk as $key => $ico) {
echo '<td data-value="'. $key .'"><i class="' . $key .'"></i></td>';
}
echo '</tr>';
}
?>
</table>
</div>
</div>
のJavascript
$("#contentIcon").keypress(function (e) {
e.preventDefault();
});
$(document).on('click', '#iconPicker table.dt-icons td', function() {
$('#contentIcon').empty();
var _dtself = $(this);
document.getElementById("contentIcon").value = _dtself.data('value');
});
$('#contentIcon').focus(function() {
$('#iconPicker').show();
}).blur(function() {
$('#iconPicker').hide();
});
更新
#iconPicker
は、隠された(未表示)です。ユーザーが#contentIcon
入力フィールドにフォーカスしたときに表示され、ぼかしイベントがトリガーされたときに非表示になります。 Iはblur
でさえハンドラ部を$('#iconPicker').hide();
を削除する場合は、(私はこのコードをフォーマットし、@Reddyおかげ)
$(document).on('click', '#iconPicker table.dt-icons td', function() {
$("#contentIcon").val($(this).data('value'));
});
をトリガすることができ、値は#contentIcon
入力フィールドに置か。しかし、#iconPicker
は隠されていません。 をclick
イベントハンドラで使用した場合、#iconPicker
はユーザーがアイコンを選択しないと非表示になりません。ここ
更新
私は自分のコードを更新して説明をしました。 –