Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблема в работе простого web приложения для визуализации исторической даты (https://javascript.ru/forum/dom-window/37776-problema-v-rabote-prostogo-web-prilozheniya-dlya-vizualizacii-istoricheskojj-daty.html)

Futurial 06.05.2013 19:57

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

в итоге наваял кое-что на 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').removeClass('active');
	if (!isClass)
		$(this).addClass('active');
	});

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


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

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


Часовой пояс GMT +3, время: 23:46.