Onclick事件在Chrome中无法处理,但在Firefox中可以正常工作

Onclick event doesn't handle in Chrome, but work fine in Firefox

本文关键字:常工作 工作 Firefox 但在 Chrome 事件 处理 Onclick      更新时间:2023-09-26

我有手工自动完成ajax表单,这里是代码。id为"city"的字段处理城市并建议以输入表单

的值开头的城市
$(document).ready(function () {
    var input_field = $("#city");
    $("#city").keypress(function () {
        setTimeout(function() {
            var city_name = input_field.val()
            $.ajax({
                type: "GET",
                url: "<%=cities_autocomplete_path%>",
                data: {city_start_with:city_name}
            }).success(function (data) {
                $("#city_results").empty();
                if (data.length==0)
                    $("#city_results").hide();
                else
                {
                    $("#city_results").show()
                    for(var idx in data)
                        $("#city_results").append('<li onclick="alert(23123123);return false;" class="city_result" id="city_result_123"><span><a >test</a></span></li>');
                }
            });
        },500);
    })
});

问题是onclick事件在Chrome中不起作用,但在Firefox和Opera中工作良好:

 $("#city_results").append('<li onclick="alert(23123123);return false;" class="city_result" id="city_result_123"><span><a >test</a></span></li>');

有人遇到同样的问题吗?

用append"注入"javascript可能不是最好的方式。在添加li元素之后,您可以随后绑定onclick-event。

try quote text within alert()

 $("#city_results").append('<li onclick="alert('23123123');return false;" class="city_result" id="city_result_123"><span><a >test</a></span></li>');