Вход

Просмотр полной версии : Проблема в работе простого web приложения для визуализации исторической даты


Futurial
06.05.2013, 19:57
решил создать простую таблицу, чтобы даты было проще запоминать и восстанавливать из памяти

в итоге наваял кое-что на js (http://date-visualisation.ip64.net/), но т.к. программист из меня хреновый - работает не так гладко, как хотелось :(

при нажатии несколько раз подряд на разные числа, некоторые нажимаются со второго раза

возможно проблема в toggle, но я не уверен

буду благодарен, если попробуете разобраться :yes:


скрипт для кнопок-чисел:
$('.numb').toggle(function() {

var col = this.parentNode.parentNode.id, previousActive = '';

previousActive = '#' + col + ' .block .numb.active';
$(previousActive).removeClass('active');;

$(this).addClass('active');
}, function () {
$(this).removeClass('active');
});


скрипт кнопки clear (снизу таблицы):
$('#clear').click(function() {

var id1 = '#c', id2 = '#b', id3 = '#n', result = '';

for (var i = 1; i < 5; i++) {
for (var j = 1; j < 4; j++) {
for (var k = 1; k < 4; k++) {
result = id1 + i + ' ' + id2 + j + ' ' + id3 + k;
$(result).removeClass('active');
}
}
}

});

skrudjmakdak
08.05.2013, 13:01
ну во-перных я открыл сайт, там у вас 2 раза был подключен jquery. сразу возникает вопрос - зачем?? убирайте..

второе. jquery - это мощная библиотека. и она очень хорошо справляется с данными задачами. а вы делайте половину работы вручную.. тоже возникает вопрос. зачем??))))

вот код:
$(document).ready(function(){
//------------
var numb = $('.numb');

$(numb).click(function ()
{
var isClass = $(this).hasClass('active');
$(this).parent().parent().find('.numb').removeClas s('active');
if (!isClass)
$(this).addClass('active');
});

$('#clear').click(function()
{
$(numb).removeClass('active');
});
//------------
});

думаю разница ощутима. сколько вы там налопатили и сколько я.. код мой то раза в 2 меньше и проще...

а вот насчет того что где то что то не срабатывает с первого раза, честно я не нашел.. вроде работает норм