Использование функции getDate для div

0

У меня есть приложение календаря прихода, настроенное таким образом, когда вы нажимаете на дверь, он выбирает случайное изображение. Я хочу обернуть это в функцию getDate, чтобы вы могли только "открыть" эту дверь в определенную дату. Я не знаю, с чего начать, любая помощь будет оценена - я довольно новичок в JS

Ссылка: http://p3.katecooperuk.com

Мой HTML:

<div id='calendar'>
<div class='doors' id='dec1'>1</div>
<div class='doors' id='dec2'>2</div>
<div class='doors' id='dec3'>3</div>
<div class='doors' id='dec4'>4</div>
<!-- etc... --!>
<div class='doors' id='dec24'>24</div>
</div

Мой JS:

Настройте Splice для выбора случайного изображения и убедитесь, что он используется только один раз

function getRandomImage(arr) {

    if (arr.length > 0) { 
    random = Math.floor(Math.random()*arr.length)
    return arr.splice(random, 1)[0];
    } 

}

Дата установки

var today = new Date()
var day = today.getDate()

console.log(today);

Дверь открыта - выберите Случайное фоновое изображение из массива

$('.doors').click(function () {

    if (today.getMonth() !== 11) {
        return;
    }

    if ($(this).attr('id') <= 'dec' + day) {

        // Select Random Image
        var doorImage = getRandomImage(calendarImg); 

        // Change background image of door that was clicked
        $(this).css('background-image', doorImage);

        return;  
    }

    // Show image telling user to come back
    $(this).css('background-image', 'url(/images/come_back.png)');

});
  • 0
    Извините, StackOverflow не место, где разработчики делают код для вас. Хорошо спросите о конкретной проблеме, и вы получите ответ (если кто-то знает, конечно).
  • 0
    Таким образом, вы хотите разрешить пользователям открывать дверь, только если это день или day ? т.е. Dec 05 вы хотите разрешить пользователям dec5 только дверь dec5
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

Простейшим решением было бы привязать обработчик onclick только к "двери" дня вместо всех "дверей". У вас есть текущая дата и хороший id для "дверей" уже, просто используйте их вот так:

$('#dec' + day).click(function(){...});

РЕДАКТИРОВАТЬ

Похоже, вы изменили свой код в сообщении. Если вы хотите сообщить пользователю о нажатии на неправильную дверь, код, указанный выше, не может быть использован. Сделайте что-то вроде этого:

$('.doors').click(function () {
    if (today.getMonth() !== 11) {
        return;
    }
    if ($(this).attr('id') !== 'dec' + day) {
        $(this).css('background-image', 'url(/images/come_back.jpg)');
        return;
    }
    // show the image
});

Живая демонстрация в jsFiddle.

  • 0
    спасибо Теему, я собираюсь работать над этим ... :)
  • 0
    Пожалуйста. Пожалуйста, примите ответ, если он был полезным.
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню