单击Enrr的功能

时间:2017-02-04 11:04:40

标签: javascript jquery django-templates

我有点击功能:

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);
        });
        });
        }
    });

1 个答案:

答案 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();
        }
    });

并且你为点击做同样的事情。