目前,我目前的职能是这个场景。
基本上,此 ajax 调用将生成表情符号列表,但我希望当用户单击笑脸图像时,笑脸代码将添加到消息文本框中。
例如,当用户点击微笑图片时,:-)
代码将被添加到消息框。
我的问题是,是否可以将代码 :-)
传递给函数?
在我当前的代码中,addText(' + key + ')
不起作用。 key
的值为:-)
。错误提示 Uncaught SyntaxError: Unexpected token :
而当值为 ;)
错误为 Uncaught SyntaxError: Unexpected token ;
我也有 :lol:
等类似的代码。任何帮助将不胜感激。
$.ajax({
type: "POST",
async: true,
cache: false,
dataType: "json",
url: "./assets/php/scripts.php",
data: {command: 'get-smileys'},
success: function (data) {
$("#smileys").empty();
$("#smileys").append("<br>");
var div_obj = document.createElement("ul");
$(div_obj).addClass('list-inline');
$.each(data, function(key, value) {
$(div_obj).append('<li><div class="col-xs-1 col-sm-1 col-lg-1" style="width:110px; height:80px" align="center"><img src="assets/img/smileys/' + value[0] + '" title="' + value[1] + '" onclick="addText(' + key + ');"><br>' + key + '</div></li>')
$("#smileys").append($(div_obj));
});
$("#smileys-flag").text('1');
$("#loader-chat").hide();
}
});
这里是添加文本部分的函数:
function addText(text){
var fullMessage = $("#message").val();
$("#message").val(fullMessage + text);
}
最佳答案
问题是您需要将它们作为字符串文字传递,如下所示。
'" onclick="addText(\'' + key + '\');"><br>'
但更好的解决方案是使用 jQuery 事件处理程序而不是像这样的内联处理程序
$(div_obj).append('<li><div class="col-xs-1 col-sm-1 col-lg-1" style="width:110px; height:80px" align="center"><img class="smileys" src="assets/img/smileys/' + value[0] + '" title="' + value[1] + '" data-smiley="' + key + '"><br>' + key + '</div></li>')
然后
jQuery(function ($) {
$("#smileys").on('click', '.smileys', function () {
addText($(this).data('smiley'))
});
})
关于javascript - 使用冒号、分号等符号将变量传递给 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32835150/