Я пытаюсь добавить несколько функций из jQuery в jqLite, так что мне не нужно загружать всю библиотеку jQuery с помощью моих угловых приложений. Я использую технику, используемую Ben Nadel в этой статье.Угловой узел JS и jqLite для селектора
http://www.bennadel.com/blog/2753-creating-jqlite-plugins-in-angularjs.htm
Я бегу в сложности реализации closestChild плагин, как этот.
https://github.com/lolmaus/jquery.closestchild/blob/master/jquery.closestchild.js
Очевидно, я переписаны немного, так это выглядит.
JQLite.prototype.closestChild = function(selector) {
var $children, $results;
$children = this.children();
if ($children.length === 0){
return $();
}
$results = $children.filter(selector);
if ($results.length > 0){
return $results;
}
else{
return $children.closestChild(selector);
}
};
... но это приводит к этой ошибке.
Error: [jqLite:nosel] http://errors.angularjs.org/1.4.0-rc.0/jqLite/nosel
Таким образом, я сделал поиск ошибки и обнаружил, что jqLite не может сравниться с селекторов по какой-то причине, только имена тегов (это когда-нибудь полезным?). Я не могу понять, что он работает вместе с функцией Ben's .filter() из этой статьи, которая, кажется, работает нормально, когда вы даете ей селектор. Это то же самое, что я вызываю в этой строке.
$results = $children.filter(selector);
Так что, я думаю, мой вопрос, есть ли способ, что я могу Проходной $ дети и посмотреть, если любой из них соответствует селектору, который передается при помощи обычный JavaScript, или какой-либо другой обходного путем?
Это блестящий эст, спасает меня, плавая вокруг моей глубины, пытаясь переписать jqLite. Я испытываю соблазн пойти со вторым, потому что он самый маленький, но что-то говорит мне, что для нескольких дополнительных Kb, имеющих доступ к некоторым дополнительным вещам, например .closest(), может быть очень удобно, и он все еще намного меньше, чем jQuery. Еще раз спасибо. – jonhobbs
Надеюсь, что они достаточно хороши. Я собирался включить jqLite с Sizzle не так давно, пока не открыл их. – estus