Я реализую веб-приложение-планировщик. Обычно пользователь нажимает на две даты, и будут выбраны все даты между двумя щелчками.
Это должно выглядеть следующим образом: Пользователь нажимает на день 5:
Затем он нажимает на день 7:
И день 6 также выбирается волшебным образом.
Приведенный выше пример прост в том, что три дня от на той же неделе. Но должна быть возможность выбрать несколько дней в выходные.
Первый выбор (до выходных):
Второй выбор (после выходных) , выбранный пользователем день 12):
Дни 9 и 10 - выходные дни, поэтому они не будут выбраны. Проблема здесь: как определить запрос для получения <td>
элементов в строках таблицы над выбранным элементом?
До сих пор я придумал следующий jquery код:
$(document).ready(function () {
$("td.elegible").click(function () {
$(this).children().filter("#event").toggleClass("event");
});
});
Запрашиваемый элемент:
<tr>
<td class="elegible">
<span class="number">@day.Date.Day</span>
<span id="event"/>
</td>
</tr>
Этот код переключает внешний вид зеленой полосы (обозначающей выбор), и с его помощью я могу выбрать дни 5,6 и 7, щелкнув все три дня. Но как я могу достичь sh, что, когда я просто нажимаю день 5 и день 7, выбирается также день 6? Более того: как мне предотвратить выбор всех дней до 5 дня, если до этого не было выбрано никаких других дней?
Я пробовал несколько функций обхода (parent (), children (), find (), filter () , вы называете это), но мне не удалось заставить это работать. Любой толчок в правильном направлении будет очень признателен.