Jquery插件$ .fn.myplugin无效

时间:2012-08-29 18:06:04

标签: jquery plugins

我可能会犯一个非常简单的错误,但是我有一些严重的麻烦要弄清楚为什么它不起作用。

以下是代码:http://jsfiddle.net/HthCa/

更新:这是我的实际代码..

<script type="text/javascript" src="scripts.js"></script>
<script type="text/javascript">
    $(function() {
        $('#test').customTabs();
    })
</script>

scripts.js中

$.fn.customTabs = function() {
    alert($(this).html());
}

4 个答案:

答案 0 :(得分:5)

在您的代码中:

$('#test').customTabs();

$.fn.customTabs = function() {
    alert($(this).html());
};

在定义之前,您正在调用$.fn.customTabs()。请尝试改为:

$.fn.customTabs = function() {
    alert(this.html());
};

$('#test').customTabs();

请注意,您不需要在插件方法中将$应用于this,因为this已经是jQuery对象(调用该方法的对象)。 / p>

答案 1 :(得分:1)

将新功能定义放在您调用它的位置上方。

$.fn.customTabs = function() {
    alert($(this).html());
};
$('#test').customTabs();

答案 2 :(得分:1)

把你的代码放在这个

$.fn.customTabs = function() {
    alert($(this).html());
};
$('#test').customTabs();

$.fn.customTabs = function() {
    alert($(this).html());
};
$(function() { // <-- inside a dom ready
    $('#test').customTabs();
});​

原因是您尝试使用控制台中未声明的功能 Uncaught TypeError: Object [object Object] has no method 'customTabs'

答案 3 :(得分:0)

确定要从jquery选择器对象访问它

$("some selectors").myPlugin()

如果您尝试过

$.myPlugin() // it won't work

它不起作用