jquery 插件多实例不起作用
我已经编写了 1-2 个 jquery 插件,但是当我尝试使用多个实例时,它们都失败了......我没有找到任何解决方案。请看一下下面的代码,如果你在这个插件上创建 2 个实例,它就不起作用......这段代码有什么问题。是什么使插件能够运行多个实例?
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
</head>
<script src="jquery.js"></script>
<script>
(function($){
$.fn.truncate = function(options) {
return this.each(function() {
obj = $(this);
var body = obj.html();
$(obj).focus(function(){
alert($(obj).attr("id"));
});
});
};
})(jQuery);
</script>
<SCRIPT LANGUAGE="JavaScript">
<!--
$().ready(function(){
$('#t1').truncate();
$('#t2').truncate();
});
//-->
</SCRIPT>
<body>
<input type="text" id="t1">
<input type="text" id="t2">
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
问题就在这里:
你忘记用
var
声明obj
。它将是一个全局变量 - 每次调用 .truncate() 时都会被覆盖。这应该会更好:顺便说一句,在空 jQuery 对象 (
$()
) 上调用.ready()
是 官方不推荐。使用这个:或这个:
代替。
The problem is right here:
You forgot to declare
obj
withvar
. It will be a global variable — and will get overwritten each time.truncate()
is called. This should work better:By the way, calling
.ready()
on an empty jQuery object ($()
) is officially not recommended. Use this:or this:
instead.
尝试这个作为基础..
Try this as a foundation..
这可能会有所帮助: http://blog.jeremymartin .name/2008/02/building-your-first-jquery-plugin-that.html
This might help: http://blog.jeremymartin.name/2008/02/building-your-first-jquery-plugin-that.html