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

时间:2014-07-16 10:36:58

标签: javascript jquery ajax

我有手工制作的自动填充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>');

有人有同样的问题吗?

2 个答案:

答案 0 :(得分:0)

这可能不是通过追加“注入”javascript的最佳方式。 在添加了li元素之后,您可以在之后绑定onclick-event。

答案 1 :(得分:0)

尝试引用alert()

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