jQuery Непойманный TypeError: не Может считать свойство 'fn' неопределенных (анонимная функция)

Все, я получаю ошибку из части моего кода, который я загрузил. Вот код:

/*----------------------------------------------------------------------*/
/* wl_Alert v 1.1 
/* description: Handles alert boxes
/* dependency: jquery UI Slider, fadeOutSlide plugin
/*----------------------------------------------------------------------*/


$.fn.wl_Alert = function (method) {
var args = arguments;
return this.each(function () {

    var $this = $(this);


    if ($.fn.wl_Alert.methods[method]) {
        return $.fn.wl_Alert.methods[method].apply(this, Array.prototype.slice.call(args, 1));
    } else if (typeof method === 'object' || !method) {
        if ($this.data('wl_Alert')) {
            var opts = $.extend({}, $this.data('wl_Alert'), method);
        } else {

            var opts = $.extend({}, $.fn.wl_Alert.defaults, method, $this.data());
        }
    } else {
        $.error('Method "' + method + '" does not exist');
    }


    if (!$this.data('wl_Alert')) {

        $this.data('wl_Alert', {});

        //bind click events to hide alert box
        $this.bind('click.wl_Alert', function (event) {
            event.preventDefault();

            //Don't hide if it is sticky
            if (!$this.data('wl_Alert').sticky) {
                $.fn.wl_Alert.methods.close.call($this[0]);
            }

            //prevent hiding the box if an inline link is clicked
        }).find('a').bind('click.wl_Alert', function (event) {
            event.stopPropagation();
        });
    } else {

    }
    //show it if it is hidden
    if ($this.is(':hidden')) {
        $this.slideDown(opts.speed / 2);
    }

    if (opts) $.extend($this.data('wl_Alert'), opts);
});

};

$.fn.wl_Alert.defaults = {
speed: 500,
sticky: false,
onBeforeClose: function (element) {},
onClose: function (element) {}
};
$.fn.wl_Alert.version = '1.1';


$.fn.wl_Alert.methods = {
close: function () {
    var $this = $(this),
        opts = $this.data('wl_Alert');
    //call callback and stop if it returns false
    if (opts.onBeforeClose.call(this, $this) === false) {
        return false;
    };
    //fadeout and call an callback
    $this.fadeOutSlide(opts.speed, function () {
        opts.onClose.call($this[0], $this);
    });
},
set: function () {
    var $this = $(this),
        options = {};
    if (typeof arguments[0] === 'object') {
        options = arguments[0];
    } else if (arguments[0] && arguments[1] !== undefined) {
        options[arguments[0]] = arguments[1];
    }
    $.each(options, function (key, value) {
        if ($.fn.wl_Alert.defaults[key] !== undefined || $.fn.wl_Alert.defaults[key] == null) {
            $this.data('wl_Alert')[key] = value;
        } else {
            $.error('Key "' + key + '" is not defined');
        }
    });

}
};

//to create an alert box on the fly
$.wl_Alert = function (text, cssclass, insert, after, options) {
//go thru all
$('div.alert').each(function () {
    var _this = $(this);
    //...and hide if one with the same text is allready set
    if (_this.text() == text) {
        _this.slideUp($.fn.wl_Alert.defaults.speed);
    }
});

//create a new DOM element and inject it
var al = $('<div class="alert ' + cssclass + '">' + text + '</div>').hide();
(after) ? al.appendTo(insert).wl_Alert(options) : al.prependTo(insert).wl_Alert(options);

//return the element
return al;
};

Кто-либо видел этот тип ошибки прежде? Как я разрешил бы что-то вроде этого? Спасибо за любой совет Вы имеете!

60
задан 30 May 2012 в 02:10

2 ответа

га, ха ха Забавный, это - простая ошибка для меня

, я добрался async на моем вызов библиотеки jquery . Просто удалите его, и я получил решение.

<script async src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

К [1 119]

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

, Почему это, это отчасти ведет себя: я получил документацию относительно ССЫЛКИ W3schools

Определение и Использование, асинхронное

, асинхронный атрибут является булевым атрибутом.

, Когда существующий, это указывает, что сценарий будет выполняться асинхронно, как только это доступно.

Примечание: асинхронный атрибут только для внешних сценариев (и должен только использоваться, если атрибут src присутствует).

Примечание: существует несколько способов, которыми может быть выполнен внешний сценарий:

1. , Если асинхронный присутствует: сценарий выполняется асинхронно с остальной частью страницы (сценарий будет выполняться, в то время как страница продолжает парсинг)

2. , Если асинхронный не присутствует, и задержите, присутствует: сценарий выполняется, когда страница закончила анализировать

3. , Если ни один асинхронный или не задерживает, присутствует: сценарий выбирается и сразу выполняется, прежде чем браузер продолжает анализировать страницу

5
ответ дан 31 October 2019 в 16:46

Когда я использовал Электрон + Угловой, такой порядок помог мне решить проблему

  <script src="./assets/js/jquery-3.3.1.min.js"></script>
  <script src="./assets/js/jquery-3.3.1.slim.min.js"></script>
  <script src="./assets/js/popper.min.js"></script>
  <script src="./assets/js/bootstrap.min.js"></script>
2
ответ дан 31 October 2019 в 16:46