0

http://jsfiddle.net/xEpGg/740/

如果我在我的脚本使用后直接调用它:

$.custom.test();

它按预期工作。但是,如果我将它放在 HTML 中的任何位置,它就不会触发。我在 jQuery 中定义了我的对象,不应该在页面中的任何地方都可以访问吗?

4

3 回答 3

1

请参阅此处的解决方案:您需要先定义自定义功能,然后才能使用它。像这样:

  <script>

        $.custom = {
              test : function() { alert("wtf"); }
        };

    </script>

    <div id="helloworld" style="border:solid; border-width:5px;">
        BLAH
    </div>
    <script>
        $.custom.test();
    </script>

​</p>

于 2012-08-03T13:21:10.417 回答
1

如果您无法按照@frenchie 建议的方式定义函数,请尝试:

    setTimeout(function(){$.custom.test();}, 0);

为什么 setTimeout(fn, 0) 有时有用?

为什么你要为 jQuery 全局分配任何东西?

于 2012-08-03T13:27:49.680 回答
0

您在加载脚本后将其添加到页面,但$.custom.test()在加载之前调用..

在此处输入图像描述

将此选项更改为no wrap (head),它将正常工作..

于 2012-08-03T13:23:09.020 回答