Я использую JQuery 1.3.2-min в проекте для обработки JavaScript-анимации, ajax и т. Д. Я сохранил файл на том же сервере, что и сайт, вместо того, чтобы использовать Google. Когда я запускаю сайт локально на моей машине для разработки, все отлично работает в FF, IE, Opera и Safari (все последние версии - я работаю дома и у меня есть только 1 машина для личного использования и разработки), за исключением некоторого CSS Различия между ними, и когда я захожу на живой сайт на моей машине, он также работает нормально. Я очистил кеши и обновил страницу, и она все еще работает.
Здесь все становится интересно. Когда я отправляю сайт своему боссу для тестирования в различных конфигурациях ОС / браузера, одна страница не работает правильно, некоторые из них работают, некоторые нет. Кроме того, клиент (который использует IE 8) также подтвердил, что он не полностью работает - фактически он сказал мне, что страница будет работать нормально в течение часа, а затем просто «выключится» на некоторое время. Я никогда не слышал о подобных вещах раньше, и Google не поднимает слишком много. У меня есть догадка, что это может быть частично с .data () JQuery, но я не уверен.
Страница в основном состоит из неупорядоченных списков, и в списке выполняются три основных действия.
Самый верхний неупорядоченный список установлен в видимый (весь список через css установлен для отображения: ни один, чтобы скрыть их при запросе новой страницы); всем элементам списка div при наведении указателя мыши на полное действие opacity, а при mouseoff - 50%; и затем при каждом щелчке по абзацу отображается самый верхний неупорядоченный список в этом элементе списка.
Вот мой файл Javascript для страницы:
$(function() {
// Set first level ul visible
$('div#pageListing ul:first').css('display', 'block');
// Disable all the hyperlinks in the list
$('div#pageListing li a').click(function() {
var obj;
obj = $(this).parent(0).parent('div:first');
highlight(obj);
return false;
});
// List Item mouse hovering
$('#pageListing li').hover(
// Mouse On
function() {
if ($(this).children('div').attr('id') !== 'activePage') {
$(this).children('div').css('opacity', 1).css('filter',
'alpha(opacity=100)');
}
}, // Mouse off
function() {
if ($(this).children('div').attr('id') !== 'activePage') {
$(this).children('div').css('opacity', 0.4).css('filter',
'alpha(opacity=40)');
}
});
// Active list item highlighting
$('#pageListing li div').click(function() {
highlight($(this));
});
// Sub-list expanding/collapsing
$('#pageListing p.subpageslink').click(function() {
// Get next list
var subTree = $(this).parent('div').next('ul');
// If list is currently active, close it, else open it.
if (subTree.data('active') != true) {
subTree.data('active', true);
subTree.show(400);
} else {
subTree.data('active', false);
subTree.hide(400);
}
});
// Double clicking of list item - edit a page
$('#pageListing li div').dblclick(function() {
var classes = $(this).attr('class');
var classArray = classes.split(' ');
var pageID = classArray[1];
editPage(pageID);
});
// Handle button clicking
$('button#addPage').click(function() {
addPage();
});
$('button#editPage').click(function() {
var div = $('div#activePage');
var classes = div.attr('class');
var classArray = classes.split(' ');
var pageID = classArray[1];
editPage(pageID);
});
$('button#delPage').click(function() {
var div = $('div#activePage')
var classes = div.attr('class');
var classArray = classes.split(' ');
var pageID = classArray[1];
delPage(pageID);
});
});
// Highlighting of page when clicked
function highlight(obj) {
// Get previous hightlighted element
// and un-highlight
var oldElement = $('div#activePage');
oldElement.css('background', 'white');
oldElement.css('opacity', 0.4).css('filter', 'alpha(opacity=40)');
oldElement.removeAttr('id');
// highlight current selection
obj.attr('id', 'activePage');
obj.css('opacity', 1).css('filter', 'alpha(opacity=100)');
obj.css('background', '#9dc0f4');
// add appropiate action buttons
$('button.pageButton').css('display', 'inline');
}
function addPage() {
window.location = "index.php?rt=cms/editPage";
}
function delPage(page) {
var confirm = window.confirm("Are you sure? Any sub-pages WILL BE deleted also.");
if (confirm) {
var url = './components/cms/controller/forms/deletePage.php';
$.ajax( {
url : url,
type : 'GET',
data : 'id=' + page,
success : function(result) {
if (!result) {
document.location = "index.php?rt=cms";
} else {
window.alert('There was a problem deleting the page');
}
}
});
}
}
function editPage(page) {
var url = "index.php?rt=cms/editPage/" + page;
window.location = url;
}