web-dev-qa-db-fra.com

Comment vérifier que le plugin jQuery et les fonctions existent?

J'ai un plugin dans certaines pages mais dans d'autres pages, je ne le veux pas, donc je n'ai pas référencé son fichier de script.

Comment vérifier si les fonctions du plugin existent avant de l'utiliser.

Dans mon cas, j'utilise ce plugin: et je l'utilise comme ceci:

$('#Marquee-inner div').Marquee('pointer').mouseover(function() {
    $(this).trigger('stop');
}).mouseout(function() {
    $(this).trigger('start');
}).mousemove(function(event) {
    if ($(this).data('drag') == true) {
        this.scrollLeft = $(this).data('scrollX') + ($(this).data('x') - event.clientX);
    }
}).mousedown(function(event) {
    $(this).data('drag', true).data('x', event.clientX).data('scrollX', this.scrollLeft);
}).mouseup(function() {
    $(this).data('drag', false);
});

Ce que je veux, c'est vérifier avant d'appeler cette fonction Marquee si elle existe ou non.

46
Amr Elgarhy
if ($.fn.Marquee) {
    // there is some jquery plugin named 'Marquee' on your page
}
125
Matt Ball

Vous pouvez également le faire. Permettez-moi de prendre l'exemple de jQuery Marquee.

C'est bien si vous utilisez uniquement jQuery.

if($().Marquee) {
    // Marquee is loaded and available
}

OR

if($.fn.Marquee !== undefined) {
    // Marquee is loaded and available
}

Similaire à ci-dessus mais sûr lorsque vous utilisez d'autres frameworks JS Mootools, etc.

if(jQuery().Marquee) {
    // Marquee is loaded and available
}

OR

if(jQuery.fn.Marquee !== undefined) {
    // Marquee is loaded and available
}
18
Madan Sapkota

Un peu mieux:

if ($.isFunction($.fn.Marquee)) {
    // ...
}

Peut-être un peu exagéré, mais cela garantira qu'il s'agit au moins d'une fonction.

5
Noyo