Вы можете проверить стратегии DefaultCommercePlaceOrderStrategy и DefaultCreateOrderFromCartStrategy для управления процессом. С другой стороны, создание многократного заказа из корзины невозможно из-за рекламных акций и доставки. Некоторые акции и стоимость доставки рассчитываются от одной корзины. Когда вы разделяете корзину на несколько заказов, согласованность расчетов не выполняется.
С другой стороны, у hybris есть функция консигнации , почему вы не использовали ее?
Какова ваша перспектива разделения корзины на несколько заказов?
Вероятно, единственная реальная проблема, которую я имею когда-либо, сталкивалась, $ (этот) объем проблемы. Например, если Вы делаете вложенный для цикла по элементам и sub элементам с помощью созданного в JQuery .each () функция, что делает $, к которому (это) относится? В этом случае это относится к самому внутреннему объему, как это должно быть, но не всегда ожидаемый.
Простое решение состоит в том, чтобы просто кэшировать $ (это) к переменной прежде, чем развернуть далее в цепочку:
$("li").each(function() {
// cache this
var list_item = $(this);
// get all child a tags
list_item.find("a").each(function() {
// scope of this now relates to a tags
$(this).hide("slow");
});
});
(Единственная вещь, о которой я могу думать, состоит в том, что это - элемент вместо объекта jQuery в $("...").each(function)
- вызовы, как $(element)
чаще используется затем просто элемент. И что чрезвычайно незначительная вещь - примерно это.
Пример вышеупомянутого (упрощенный и я знаю, что существуют другие намного лучшие способы сделать это, я просто, не мог думать о лучшем примере теперь):
// Make all divs that has foo=bar pink.
$("div").each(function(){
if($(this).attr("foo") == "bar"){
$(this).css("background", "pink");
}
});
each
функция, которая берет функцию в качестве параметра, та функция вызвана однажды для каждого элемента соответствия. В переданной функции, this
относится к фактическому DOM-элементу браузера, но я нахожу, что Вы часто будете хотеть использовать некоторую функцию jQuery на каждом элементе, таким образом имея необходимость использовать $(this)
. Если это было установлено на какой $(this)
Вы получили бы более короткий код, и Вы могли все еще получить доступ к использованию объекта элемента DOM this.get(0)
. Теперь я вижу основания для вещей, являющихся, как они, а именно, та запись $(this)
вместо этого, является едва настолько громоздким, и в случае, если можно сделать то, что Вы хотите сделать с элементом DOM путем, это, быстрее, чем способ, которым это, возможно, было, и другой путь не будет быстрее в случае, который Вы хотите $(this)
.)
Мои две болевых точки были скобкой черт, может стать очень сбивающим с толку
$('.myDiv').append($('<ul />').append($('<li />').text('content')));
Моя другая распространенная проблема имеет отношение к использованию JSON в jQuery, я всегда пропускаю последнюю запятую,
$('.myDiv').tabs({ option1:true, options2:false(, woops)});
Наконец, я использовал jQuery в течение приблизительно 6 месяцев теперь, и я не думаю, что буду когда-либо возвращаться к прототипам. Я абсолютно люблю jQuery и много приемов, которые они используют, помогли мне изучить много. один прохладный прием, который я люблю, использует строковые литералы для вызовов метода, я никогда действительно сделал так слишком много с прототипами.
$('.myDiv')[(add ? 'add' : 'remove') + 'Class']('redText');
Я думаю единственное, которое получает меня, то, что, когда я делаю запрос выбора для единственного элемента, я должен помнить, что он возвращает массив элементов даже при том, что я знаю, что существует только один. Обычно, это не имеет никакого значения, если Вы не хотите взаимодействовать с элементом непосредственно вместо через методы jQuery.
Я не думаю, что существуют любые реальные глюки или даже любые непрекращающиеся раздражения. Другие ответы здесь, кажется, подтверждают это - проблемы вызываются просто немного отличающимся API и другим стилем кодирования JavaScript, который поощряет jQuery.
Я начал использовать Прототип несколько лет назад и нашел это открытием. Настолько мощный, настолько изящный. После нескольких месяцев я испытал jQuery и обнаружил, каковы питание и элегантность действительно. Я не помню раздражений. Теперь я вернулся работа над проектом с помощью Прототипа, и похоже на шаг назад (для ярмарки, мы используем Прототип 1.5.1).
Если Вы инвертировали вопрос - "О каких Опытных раздражениях я должен знать как пользователь jQuery?" - Вы получили бы намного больше ответов.
.each:
jQuery (необходимо Индексировать, даже если Вы не используете его):
$.each(collection, function(index, item) {
item.hide();
});
Прототип (Вы обычно используете объект, таким образом, можно опустить индекс):
collection.each(function(item) {
item.hide();
});
Это - действительно только раздражение при выполнении большого управления DOM. PrototypeJs автоматически добавляет свой API к Элементам DOM, таким образом, это работает в prototypejs (jQuery, конечно, не делает этого):
var el = document.createElement("div");
el.addClassName("hello"); // addClassName is a prototypejs method implemented on the native HTMLElement
Даже не выполняя собственный элемент через $ () функция.
PS: Должен отметить, что это не работает в IE.