Я в основном разработчик PHP. Я понимаю, что в наши дни специализация на одном языке сценариев не сокращает его, но факт остается фактом, что мои навыки в JavaScript и jQuery довольно зеленые. Я новичок в лучшем случае. Я могу создать свой собственный код, но совместимость с несколькими браузерами остается большой проблемой при работе с JavaScript.
В любом случае, у меня есть скрипт, который фильтрует товары по категориям / подкатегориям. Вот как это работает: вы выбираете категорию, а javascript в фоновом режиме делает свое дело, чтобы отфильтровать подкатегории так, чтобы отображаемые параметры относились к родительской категории - комбинация этих двух фильтров линейки продуктов.
Вот мой код:
function scategories(){
//get the category option value from the category drop down bar
var cat = (document.getElementById('categories').value);
//get all the options from the subcategory drop down bar
var subcat = document.getElementsByClassName('subcategories');
var n=0;
//if the category bar option is set to 0 display everything
if(Number(cat)==0){
Show();
}
//filter the subcategories
while(subcat.item(n)){
//if there is no match b/w the subcategories option and the categories id FILTER
if(Number((subcat.item(n).value).split('|')[1]) != Number(cat) && Number(subcat.item(n).value) != 0){
document.getElementsByClassName('subcategories')
.item(n)
.style
.display="none";
}else{
//else display the subcategory
document.getElementsByClassName('subcategories')
.item(n)
.style
.display="list-item";
}
n++;
}
}
Этот код довольно понятен, я бы сказал. У меня также есть функция shiftfocus, которая перемещает фокус с текущей опции, выбранной в подкатегории, на настройку по умолчанию, которая равна 'none', когда выбирается новая категория. Это в основном сбрасывает подкатегорию .. вот код:
function shiftfocus(){
document.getElementsByClassName('subcategories')
.item(0)
.removeAttribute("selected");
document.getElementsByClassName('subcategories')
.item(0)
.setAttribute("selected","selected");
}
Shiftfocus называется onChange, а категории - onClick.
Задача 1:
1) Firefox: Shiftfocus не смещает фокус на параметр по умолчанию, хотя я вижу, что он добавляет атрибут «selected».
2) Safari: вообще не работает.
РЕДАКТИРОВАТЬ: Проблема 2 была продуктом небрежной ошибки. Я оставил открытым тег привязки, который был
создавая хаос в IE. Должен был дважды проверить, прежде чем беспокоить вас
ребята. Сожалею. Проблема 1 все еще сохраняется.
Задача 2:
Я не понимаю ни одного из нас, разработчиков, особенно, как интернет-исследователь. Но я готов поверить, что допустил здесь ошибку. У меня есть некоторый jQuery, который выбирает данные из скрипта в другом файле через встроенную функцию POST и добавляет его в таблицу с идентификатором «content». Это прекрасно работает на всех браузерах, кроме IE. Если я попытаюсь вернуться в режим совместимости с IE 7,8, результаты получатся немного лучше (хотя данные разбиты на части), а в режиме совместимости с IE9 ничего не добавится! Вот код:
$.post("bagcontents.php", {
"Bid": $(this).attr('bid')
},
function(data){
$("#content").empty().append(data);
roundNumber();
$('#processorder_hidden').attr('value',currentBid);
});
//append here
<div id="contents" style="overflow:auto;height:345px;padding-right:5px;">
<form name="bag_contents" id="bag_contents" method="post" action="<?php _page ;?>">
<table id="content">
</table>
<input type="hidden" id="bag_contents_hidden" name="bag_contents_hidden" value="1" />
</form>
</div>
Любая помощь будет оценена. Я попытался вывести извлеченные результаты с помощью alert, alert (data), и скрипт получает все просто. Это просто часть добавления, которая терпит неудачу: |