Question

/// <reference path="jquery-1.5.vsdoc.js" />
// IntelliSense works here.

function ($, window, document, undefined) { /// <param name="$" type="jQuery" />
    // IntelliSense  does not work here.

}(jQuery, this, document);

Est-il une solution pour Visual Studio 2008?Le service pack 1 correctif a été appliqué et c'est la raison de l'IntelliSense travaille en dehors de l'absence de conflit wrapper mais, à l'intérieur, pas de bueno.Certains ont dit d'ajouter de la param annotation mais, hélas, cela ne fonctionne pas pour moi.

Était-ce utile?

La solution

C'est parce que la définition de la fonction ne sait pas que jQuery moyen du dollar à l'intérieur de lui.Prenez cet exemple:

var wrapper = function($, window, document, undefined) {
    // this function doesn't know what dollar is
};

// it could be called like this:
wrapper(jQuery, window, document, undefined);

// or like this:
wrapper(1, 2, 3, 4);

Votre fonction ne peut pas connaître la définition de ce que vous êtes de passage dans.C'est à votre fonction pour comprendre cela et assurez-vous que vos arguments sont valables.

La définition de la fonction et de l'exécution de la fonction sont deux choses distinctes.Vous n'obtiendrez pas d'intellisense pour les arguments d'une fonction à l'intérieur de la définition de la fonction.

Autres conseils

Cela fonctionne pour moi dans Visual Studio 2010 avec jQuery IntelliSense documentation inclus dans le package NuGet (actuellement 1.6.1).Il y a un hack, mais c'est un exemple de plugin jQuery avec plein IntelliSense de l'jQuery exemple.

/// <reference path="/Scripts/jquery-1.6.1.js" />
(function ($) {
    /// <param name="$" type="jQuery">
    ///     Pass me jQuery
    /// </param>

    // IntelliSense works here.
    $(".intellisense_work_here").add(".test", "<strong>it works<strong>");

    // Setting this locally enables IntelliSense  to work in the .each below.
    var $ = $;

    $.fn.makeThingsAwesomePlugin = function (options) {

        var defaults = {
            awesomeness: "really_awesome"
        };
        var options = $.extend(defaults, options);

        return this.each(function () {

            // intellisense work here    
            $(".someting_lame").addClass(options.awesomeness);
        });
    };
})(jQuery);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top