我有点击功能:
olMap.on('click', function(evt) {
var feature = olMap.forEachFeatureAtPixel(evt.pixel, function(feature, layer) {
return feature;
});
if (feature) {
var coordinate = evt.coordinate;
var viewResolution = /** @type {number} */ (view.getResolution());
var coord = feature.getGeometry().getCoordinates();
var props = feature.getProperties();
content.innerHTML = '<p><b>City</b>:'+props.nam+'<br> ZIP CODE:'+props.f_code+'</p>';
overlay.setPosition(coordinate);
}
else{
overlay.setPosition(undefined);
}
当我尝试添加通过Enter键提交输入的功能时,它什么也没发生。此功能使用Enter submit:
$("#but").on('click', function(){
$.post('/chat/send/', {
id: $(this).attr("name"), text: $('#text').val(), chat_id: $(".message-box").attr("chat-id"),
}, function(response) {
var options = '';
$.each(response.data, function() {
options += '<p><b>' + this[0] + ':</b> ' + this[1] + '</p>';
});
$('#text').val('');
$('.message-box').html(options);
});
});
在HTML中我有:
$('#text').keypress(function(e){
if(e.which == 13){
$("#but").on('click', function(){
$.post('/chat/send/', {
id: $(this).attr("name"), text: $('#text').val(), chat_id: $(".message-box").attr("chat-id"),
}, function(response) {
var options = '';
$.each(response.data, function() {
options += '<p><b>' + this[0] + ':</b> ' + this[1] + '</p>';
});
$('#text').val('');
$('.message-box').html(options);
});
});
}
});
答案 0 :(得分:0)
您要将keypress
事件与click
内部相关联,以解决此问题;这是一个建议
第一尝试分解重复的代码,因此如果有任何编辑,您只需要执行一次:
function sendReq(data){
$.post('/chat/send/', data, function(response) {
var options = '';
$.each(response.data, function() {
options += '<p><b>' + this[0] + ':</b> ' + this[1] + '</p>';
});
$('#text').val('');
$('.message-box').html(options);
});
}
所以现在你有一个发送你的请求的功能,现在你将处理你的功能被触发的事件,它只需键入
$('#text').keypress(function(e){
if(e.keyCode == 13){
var data = {id: $(this).attr("name"), text: $('#text').val(), chat_id: $(".message-box").attr("chat-id")}
sendReq();
}
});
并且你为点击做同样的事情。