我想知道如何從focus-blur事件中觸發的元素(使用click事件)獲取值。我創建了像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
輸入字段時將顯示,並且當模糊事件觸發時將被隱藏。如果我在blur
甚至處理機部分除去$('#iconPicker').hide();
,然後(I格式化該代碼,這要歸功於@Reddy)
$(document).on('click', '#iconPicker table.dt-icons td', function() {
$("#contentIcon").val($(this).data('value'));
});
可以被觸發並將該值放置#contentIcon
輸入字段。但是,#iconPicker
沒有隱藏回來。如果我在click
事件處理程序中使用了$('#iconPicker').hide();
,如果用戶未選擇圖標,則#iconPicker
將不會隱藏。
更新
這裏的例子jsfiddle.net
我已更新我的代碼並給出一些解釋。 –