Функция доллара JavaScript, ошибка функции $ () - PullRequest
0 голосов
/ 26 января 2011

Я наткнулся на функцию знака доллара в интернете и решил использовать ее для меню переключения JavaScript. Тем не менее, символ "$" делает мой код неудачным.

Вот что я пытаюсь использовать:

function $() {
        var elements = new Array();
        for (var i = 0; i < arguments.length; i++) {
            var element = arguments[i];
            if (typeof element == 'string')
                element = document.getElementById(element);
            if (arguments.length == 1)
                return element;
            elements.push(element);
        }
        return elements;
    }

    function toggle(obj) {
        var el = $(obj);
        el.style.display = (el.style.display != 'none' ? 'none' : '' );
    }

$ from "function $ () {", кажется, нарушает код. Как вы объявляете эту функцию? Если я заменю $ на «что-нибудь», это будет работать, но не как функция доллара ...

Ответы [ 2 ]

7 голосов
/ 26 января 2011

Знак доллара не является стандартной функцией Javascript, но является частью сторонней библиотеки.

Есть две известные библиотеки, которые используют знак доллара таким образом.

Более старый называется Prototype , но тот, который в настоящее время в моде, и, скорее всего, тот, который вы видели в использовании, это JQuery .

Обе эти библиотеки будут использоваться путем добавления тега <script> на вашу HTML-страницу, чтобы включить код библиотеки, после чего вы сможете использовать их функциональность.

Большая часть функциональности обеих этих библиотек содержится в их соответствующих $() функциях. В случае JQuery вы также можете ссылаться на функцию $() как jQuery(), чтобы предотвратить конфликты пространства имен, если вы хотите использовать оба из них.

Я предлагаю прочитать JQuery, прежде чем продолжить - JQuery очень мощный и добавляет много функциональности, но стиль кодирования для написания кода JQuery может сильно отличаться от обычного Javascript и может потребовать некоторого привыкания , И это совершенно отдельно от изучения API и выяснения того, что он может делать.

Чтобы ответить на ваш вопрос - как объявить $ как имя функции, я предлагаю взглянуть на исходный код JQuery, чтобы узнать, как они это делают. Тем не менее, мне удалось создать работающую $() функцию при первой попытке, например:

var $ = function() {alert('dollar works for me');}
$();

Но, если честно, я бы этого не сделал. Если вы действительно хотите использовать функцию $() так, как она используется на других сайтах, вам нужно использовать JQuery. Это намного больше, чем просто упаковка document.getElementById().

Кстати, JQuery и Prototype - не единственные подобные библиотеки. Если вы интересуетесь подобными вещами, вы также можете посмотреть MooTools , YUI и некоторые другие.

Надеюсь, это поможет.

3 голосов
/ 26 января 2011

Знак $ - это нотация для различных структур javascript (prototype / jQuery). Поскольку замена на «что-нибудь еще» работает, вы, скорее всего, столкнулись между этой встроенной функцией и используемой платформой.

Само по себе обозначение и функция правильные, как показано в следующем примере.

Откройте новую вкладку / окно и введите это в адресной строке:

javascript:eval("function $() { alert('hi'); } $();");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...