将jquery移动到js文件导致引用错误和类型错误

时间:2014-12-09 23:42:15

标签: javascript jquery html plugins

所以,在我的html文件中,我有一个用于像这样刷新消息的脚本

<script>
    $(document).ready( function() {
        flashThisMessage("me");                    
    });

    //I want to move this code below to js file, so I dont have to copy this part
    //to every html file that need to use, so I can just include the js file
    (function($) {
        $.fn.flash_message = function(options) {

          options = $.extend({
            text: 'Done',
            time: 5000,
            how: 'before',
            class_name: ''
          }, options);

          return $(this).each(function() {
            if( $(this).parent().find('.flash_message').get(0) )
              return;

            var message = $('<span />', {
              'class': 'flash_message ' + options.class_name,
              text: options.text
            }).hide().fadeIn('fast');

            $(this)[options.how](message);

            message.delay(options.time).fadeOut('normal', function() {
              $(this).remove();
            });

          });
        };
    })(jQuery);
</script>

我的js文件看起来像这样

function flashThisMessage( theMessage ) {
    $('#status-message-area').flash_message({
        text: theMessage,
        how: 'append'
    });   
}

如何将flash_message脚本移动到js文件中,我试图复制它,它会给出一个错误“ReferenceError:jQuery未定义”和“TypeError:$(...)。flash_message不是功能“?

2 个答案:

答案 0 :(得分:1)

我看不到你是如何添加js文件的,但是如果你在js文件后加载了jQuery,你就会遇到这个错误。

答案 1 :(得分:1)

就像它在评论中说的那样,和cyclops1101说的一样,你应该在你的脚本之后初始化JS文件。

快乐的脚本!