我遇到了从jQuery插件传递String值到回调函数的问题:
这是插件中的代码
tempField.on("keydown", function (e){
if (e.which === 13) {
var hiddenField = $('input[name="hiddenField"]');
var textValue = $(this).val();
var textColor = settings.color;
var font = settings.textSize;
var removeInputHandle = $(this).remove();
var setText = textElement.show();
}
if(textValue != ""){
hiddenField.val(textValue).change();
textElement.text(textValue);
textElement.css("color", textColor);
textElement.css("font-size", font);
settings.callback(textValue);
}
if(e.keyCode === 13){
removeInputHandle;
setText;
}
return textValue;
});
和主js文件中的代码
var setTitle = function (title){
title = presTitle;
var presTitle = app.presentation.title;
console.log(presTitle);
};
$("#presentationTitle").inline({
callback: setTitle
});
现在,这里的回调函数正在通过$ .extend函数替换插件文件中定义的回调函数(只是为了没有人混淆)。
我正在尝试使用textValue来设置对象中字段的值。但是这个值必须是一个字符串......并且该值不作为字符串传递,并被解释为undefined或null;尽管它给出了alfa数值。
EX:
说,我进入了输入字段,输入了输入字段。该值将是someinputinthisinputfield。
我需要它是“someinputinthisinputfield”。
非常感谢任何帮助。
答案 0 :(得分:0)
您需要在第一个var textValue
语句之前初始化if
。目前,您没有返回任何内容,因为textValue
将在return
返回的范围内不存在tempField.on("keydown", function(e) {
var textValue;
...
});
。您需要类似
textValue
您可以将""
初始化为if
,也可以在第二次{{1}}检查中使用。