SooR, так и думал =)
но вернемся к нашим "баранам" - проблема с фильтром в IE.
не работает ни в одной версии из тех, что я проверял
( https://opencartforum.com/public/style_emoticons/default/icon_arrow.gif https://opencartforum.com/viewtopic.php?f=21&t=876&start=60#p7780)
похоже IE напрочь не понимает вот этого:
$('#filters input, #filters select').live('change', function() {
effects('', 'jump', 'icon', 200);
//effects('in', 'fade', 'load', 300);
alert("IE test _live change_"); // нет этого сообщения в IE
loadContent();
});пойду потестирую еще.народ, кто пользуется фильтром, не проходите мимо проблемы :?
UPD:
пока писал сообщение - попутно тестил.
вылечил проблему так:
1. закомментировал приведенный выше код;
2. добавил в вывод каждого элемента (у меня используются только checkbox`ы)
onclick="markFilterOption();"в итоге получилось так:
мой код корректно работает в:
opera 10.10, iceweasel 3.5.14 (mozilla), gChrome 6.?, IE (7,8 tested)
осталось "пофиксить навигацию".
ибо если нет JS/AJAX (или вдруг сбой какой произошел после AJAX-получения списка категорий/товаров), то при переходе на какую-либо страницу видим "немного" не то, что хотелось бы :D
на этом все.
спасибо всем, кто не ответил - благодаря вам я смог сам найти и побороть проблему...
UPD2
все здорово, фильтр работает во всех браузерах.только вот значения опций фильтра теперь не передаются :D
а значит битва еще не окончена :?
UPD3
ну йомайо. сколько можно провтыкивать такие моменты... :o
проблема со сбором значений опций фильтра была в том,
что я собирал input`ы с неправильными именами.
переработал код вот так (сугубо под свои нужды):
var $filter_options_fields = $("#filters input:checked").serializeArray();
jQuery.each($filter_options_fields, function(j, $filter_options_field){
if ($filter_options_field.name != "parent" && $filter_options_field.name != "subcatID[]") {
//alert($filter_options_field.name);
if (j == 0) {
$filter_options_values += $filter_options_field.value;
} else if ($filter_options_field.value == '') {
$filter_options_values += '';
} else {
if ($filter_options_values == '') {
$filter_options_values += $filter_options_field.value;
} else {
$filter_options_values += '_' + $filter_options_field.value;
}
}
}
});отсюда, вобщем-то, вытекает вопрос:можно ли как-то так (более "элегантно" ИМХО)
var $fields = $("#filters input[name='value_id[ТУТ_КАКОЕ_ТО_РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ]'], #filters select[name='value_id[ТУТ_КАКОЕ_ТО_РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ]']").serializeArray();организовать сбор данных input`ов (или каких других элементов) по именам.ушел в поиски регулярок в JS