【发布时间】:2016-04-14 04:05:36
【问题描述】:
试图提高我的 jQuery/javascript 技能,我认为我有一个完美的问题可以帮助我了解如何以及何时使用扩展方法来处理 jQuery 对象。我基本上是在尝试创建一个限制 input[type=text] 元素的最大长度的函数。
我真正想要的是为用户提供如何使用 jQuery 扩展 $fn 的示例。创建自定义插件。虽然不是一个理想的用法,但这个例子很简单,因为用户只需使用基于类名的选择器传入某种值(最小值或最大值或两者?),然后插件会自动更新元素 max-length/min-长度和长度值)。
这是我目前所拥有的,但我知道我还没有走在正确的轨道上。或者更好的是,还创建另一个插件来设置min-length、max-length、length 属性。请随时根据需要进行编辑。提前致谢!
<script>
maxLength(length,element) {
if (element.val().length <= length) {
return false;
} else {
return true;
}
}
$(".max-length").keypress(function (element) {
maxLength(2,element);
});
</script>
我想要的是我可以要么
A: $("Textbox).maxLength(2); //更喜欢这个,因为我想这就是我想使用它的方式?
或
乙:maxLength($("#Textbox"), 2);
编辑
这是我找到的最简单的例子,但这只是一个扩展对象的指标/变量,而不是 jQuery/js 对象的方法:
$(document).tooltip.temporarilyOff 那么当我初始化jQuery tooltip的时候,我只需要在open中添加一个check:
var settings = {};
settings.tooltipClass = "tooltip";
settings.open = function (event, ui) {
if ($(document).tooltip.temporarilyOff) {
ui.tooltip.stop().remove();
}
};
$(document).tooltip(settings);
//set the variable of the object
$(document).tooltip.temporarilyOff = true;
搞砸了,我想我不知道我要找的是一个插件。嗬! jQuery 文档一直都有我的例子。我想现在只剩下 args 的传递了
$.fn.greenify = function() {
this.css( "color", "green" );
};
$( "a" ).greenify(); // Makes all the links green.
【问题讨论】:
-
为什么不用输入maxlength?不用js也可以做到
-
检查这可能是你想要的jsfiddle.net/jznxtgm0
-
使用 keyup 代替看到这个jsfiddle.net/jznxtgm0/1
-
对于 A:$('input').attr('maxlength', 2) 对于 B:参见演示
-
更多的是关于我学习增加 jQuery 对象的功能。
标签: javascript jquery jquery-selectors