将变量传递到 javascript 中的函数中
Passing a variable into a function in javascript
我不确定我的代码出了什么问题。 我一直得到最大长度的 NaN 变量。 我是否正确编写了此函数?
我正在尝试调用的辅助函数:
(function($) {
$.fn.countRemainingCharactersHelper = function(maxLength) {
id = this.attr('id');
var textLength = this.val().length;
var textRemaining = maxLength - textLength;
if (textLength >= maxLength) {
textRemaining = 0;
}
var messageId = id.slice(0, (id.indexOf('someTxtBox'))) + 'someTxtBox';
$('#' + messageId).html(textRemaining + ' characters remaining.');
};
})(jQuery);
调用上述帮助程序函数的函数:
function countRemainingCharacters() {
$(this).countRemainingCharactersHelper(1000);
}
function countRemainingCharacters(maxLength) {
$(this).countRemainingCharactersHelper(maxLength);
}
调用在 maxLength 变量中传递的函数
$('#samplesomeTxtBox').click(function() {
countRemainingCharacters(4000);
});
this
将引用countRemainingCharacters()
函数中的window
,因为您不会使用作用域调用它。您可以使用call()
来解决此问题:
$('#samplesomeTxtBox').click(function() {
countRemainingCharacters.call(this, 4000);
})
另请注意,用于生成放置消息的元素id
的逻辑有点偏差。可以通过使用 data
属性显式设置元素 ID 来改进它。
在这种情况下,您的重载方法也是多余的,因为如果没有提供默认值,您可以利用 JavaScript 的"falsy"逻辑来提供默认值。这意味着您可以将两个countRemainingCharacters()
函数转换为一个:
function countRemainingCharacters(maxLength) {
$(this).countRemainingCharactersHelper(maxLength || 1000);
}
工作示例
此时剩下的就是创建一个键事件处理程序来计算用户键入时的剩余字符。
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery