2

我可能犯了一个非常简单的错误,但是在试图弄清楚为什么它不起作用时遇到了一些严重的麻烦。

这是代码:http: //jsfiddle.net/HthCa/

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

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

脚本.js

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

4 回答 4

5

在您的代码中:

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

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

$.fn.customTabs()在定义它之前打电话。请尝试:

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

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

请注意,您不需要在插件方法中应用$to ,因为它已经是一个 jQuery 对象(调用该方法的对象)。thisthis

于 2012-08-29T18:08:18.750 回答
1

把新的函数定义放在你调用它的地方。

$.fn.customTabs = function() {
    alert($(this).html());
};
$('#test').customTabs();
于 2012-08-29T18:07:24.320 回答
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'

于 2012-08-29T18:07:31.333 回答
0

你确定你像这样从jquery选择器对象访问它吗

$("some selectors").myPlugin()

如果你试过这个

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

它行不通

于 2020-05-18T12:26:18.023 回答