我正在尝试为jQuery编写一些插件,所以作为起点我去了文档中显示的基本示例(here)。这是我的代码,在一个名为jquery.test.js的js文件中:
(function($) {
$.fn.myPlugin = function(settings) {
var config = {'foo': 'bar'};
if (settings) $.extend(config, settings);
this.each(function() {
// element-specific code here
alert('found P tag');
});
return this;
});
})(jQuery);
这是HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en">
<head>
<title>Plugin Test</title>
<script type="text/javascript" src="/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="/jquery.test.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('p').myPlugin();
});
</script>
</head>
<body>
<p>asdgasdgasg</p>
</body>
</html>
我希望这会为页面中的每个段落标记弹出警报。但是,当我加载页面时,没有任何反应。 Firebug给了我两个错误:
missing ; before statement
http://playground.darthvader.com/jquery.test.js
Line 16
$("p").myPlugin is not a function
http://playground.darthvader.com/ol.html
Line 11
我很困惑。谁能看到我在这里做错了什么?
编辑:事实证明,jQuery文档中有一个拼写错误(很好地抓住了Ghommey),我正在复制并粘贴代码。我联系了docs网站的管理员,现在已经修复了。答案 0 :(得分:4)
return this;
});
似乎是错误的 - 只尝试:
return this;
};