как избежать конфликтов функций между плагинами jquery - PullRequest
0 голосов
/ 09 марта 2010

У меня проблема с тем, что я получил две одинаковые функции (jquery.fn.filter). один из стороннего плагина, другой из одного из моих плагинов. Очевидно, я могу переименовать функцию в своем плагине, но как лучше было бы написать плагин, чтобы избежать возможности этого случиться? Можно ли ввести какое-то пространство имен, как, например, java / .net do?

Ответы [ 2 ]

2 голосов
/ 09 марта 2010

Вопрос здесь не в том, может ли код jquery быть пространством имен - конфликт, который вы описываете, происходит в «экспортированном» интерфейсе вашего плагина jQuery, имени функции для пользователя. Это не имеет ничего общего с пространством имен в традиционном смысле.

Поскольку сильной частью концепции jQuerys является использование коротких, легко запоминающихся имен функций в коллекциях, с этим ничего нельзя поделать, не жертвуя простотой.

Сказав это, возможное, но уродливое решение будет выглядеть так:

$("#selector").fns("my.name.space.company")("myargument");

Этот код будет вызывать мнимую функцию fns, которая разрешает данную строку в вещественную функцию и возвращает эту функцию. Однако реализация этой функции в качестве плагина создает ту же проблему ...

Вывод: выхода нет; -)

0 голосов
/ 09 марта 2010

Мне нравится ваше мнение о пространстве имен jQuery.

(http://docs.jquery.com/Using_jQuery_with_Other_Libraries) не помогает, если у вас были ЛЮБЫЕ функции под именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...