![](/img/trans.png)
[英]Passing in variable amount of parameters to a function that looks like “function(*x)” JavaScript
[英]Passing variable to javascript function with symbols like colon, semicolon, etc
目前我在我的當前功能上存在這種情況。
基本上,這個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'))
});
})
您需要將args作為字符串文字傳遞。 然后當你解碼它時,你可以得到你想要的子串。
例如:
function takeSmiley(smiley) {
return smiley.substr(1, smiley.length - 2) // Return lol for :lol:
}
takeSmiley(":lol:");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.