【问题标题】:jQuery character count if statementjQuery 字符计数 if 语句
【发布时间】:2015-08-11 12:20:04
【问题描述】:
我有以下字符计数插件:如果字符数超过 9 个,则添加警报类以将颜色更改为红色。
我想要的是当我说'如果字符数超过 9'时,用 var 替换数字 9。
if(number_of_characters >= 9) {
所以这个值总是可以从插件选项中调整,而不是在 jQuery 插件中改变这个值。
我应该怎么做?
My working fiddle
【问题讨论】:
标签:
javascript
jquery
variables
if-statement
jquery-plugins
【解决方案1】:
这是一个有效的Fiddle。
我所做的是添加一个新选项 - number_of_characters(你可以随意命名):
$(textarea).CountCharacters({
Start_Count: 0,
Amount_Result: "counter",
Alert_Class: "alert-counter",
Amount_Limit: 19,
number_of_characters: 5
});
然后,我没有对值进行硬编码,而是引用了新选项:
if(number_of_characters >= options.number_of_characters) {
$("#"+options.Amount_Result).addClass(options.Alert_Class);
}
我还设置了一个新的默认选项:
var defaults = {
Start_Count: 0,
Amount_Result: false,
Alert_Class: false,
number_of_characters: 9
}
【解决方案2】:
您可以向defaults 对象添加一个新属性,并从中读取。然后可以根据每个实例的需要覆盖它。试试这个:
// declaration:
var defaults = {
Start_Count: 0,
Amount_Result: false,
Alert_Class: false,
maximumCharacters: 9
}
// usage:
if (number_of_characters >= options.maximumCharacters) {
$("#" + options.Amount_Result).addClass(options.Alert_Class);
} else {
$("#" + options.Amount_Result).removeClass(options.Alert_Class);
}
Updated fiddle
【解决方案3】:
使用选项 Amount_Limit
$(textarea).CountCharacters({
Start_Count: 0,
Amount_Result: "counter",
Alert_Class: "alert-counter",
Amount_Limit: 9
});
if(number_of_characters >= options.Amount_Limit)