При использовании обработчика событий change
, предложенного Dreas Grech, подходит, это не очень хорошо работает в IE 6 & amp; 7, который не запускает событие change
до тех пор, пока фокус не будет размытым (то есть, пока вы не выйдете за пределы области флажка). Как и QuirksMode , «это серьезная ошибка».
Возможно, вы захотите использовать обработчик событий click
, но это не будет работать с навигацией по клавиатуре. Вам также нужно зарегистрировать обработчик keyup
...
См. Также этот связанный вопрос .
Я еще не нашел хорошего кросс- браузерное решение, которое поддерживает как щелчки мыши, так и клавиатуру, активирует флажки (и не запускает слишком много событий).
Что касается вашего решения для проверки того, установлен флажок или нет, вместо добавления ваш собственный класс checked
, вы можете использовать атрибут checked
HTML:
$('input#myInput').change(function () {
if ($(this).attr("checked")) {
//do stuff if the checkbox is checked
} else {
//do stuff if the checkbox isn't checked
}
});
Любой браузер устанавливает атрибут checked
элемента input
в значение "checked"
, если этот флажок установлен проверяется и устанавливает его на null
(или удаляет атрибут), если флажок не установлен.
Ваша проблема - типичная проблема эталонного конфликта. В MDX иерархия не может использоваться более одного раза в данном кортеже, но если вы используете иерархию USER и лежащую в ее основе иерархию атрибутов, вы по существу обходите стороной этот чек. Это то, что произошло в вашем запросе
В первом запросе вы используете Иерархию пользователей
[Дата]. [Календарь]. [Месяц]. & Amp; [2013] & amp; ; 1
blockquote>В MDX иерархия пользователей переводится в иерархии атрибутов. В вашем первом запросе
SELECT NON EMPTY {[Показатели]. [Сумма интернет-продаж]} ON 0, NON EMPTY {[Дата]. [Календарь]. [Месяц]. & Amp; [2013] & amp; 1 } ON 1 FROM [Приключенческие работы] ГДЕ
blockquote>
{[Дата]. [Дата]. & [20130105]: [Дата]. [Дата]. & amp; [ 20130106]}вы используете Иерархию пользователей "[Дата]. [Календарь]. [Месяц]. & [2013] & amp; 1 ", что в последний уровень имеет «[Дата]. [Дата]». Затем в предложении where для фильтрации используется та же иерархия атрибутов «[Date]. [Date]». Поскольку в иерархии USER вы не использовали конечный уровень, следовательно, вы указали частичный адрес, поэтому члены и его предки разрешены. Все потомки игнорируются в переводе. Посмотрите на приведенный ниже запрос (это основано на вашем первом запросе, я намеренно удалил предложение where).
with member [Measures].[CalendarYear] as [Date].[Calendar Year].currentmember.name member [Measures].[CalendarSemester] as [Date].[Calendar Semester of Year].currentmember.name member [Measures].[CalendarQuater] as [Date].[Calendar Quarter of Year].currentmember.name member [Measures].[CalendarMonth] as [Date].[Month of Year].currentmember.name member [Measures].[CalendarDate] as [Date].[Date].currentmember.name SELECT NON EMPTY { [Measures].[Internet Sales Amount] ,[Measures].[CalendarYear],[Measures].[CalendarSemester],[Measures].[CalendarQuater],[Measures].[CalendarMonth],[Measures].[CalendarDate]} ON 0, NON EMPTY { [Date].[Calendar].[Month].&[2013]&[1] } ON 1 FROM [Adventure Works]
Обратите внимание, что календарный год, семестр и квартал показывают значения не по умолчанию. Но мы никогда не использовали их. Это показывает, что перевод пользовательской иерархии выполняется в базовые иерархии атрибутов. Теперь посмотрите на Календарь, он все еще показывает «Весь период». Так как это было проигнорировано. Теперь, если вы добавите предложение where обратно, в Date по-прежнему будет отображаться «All Period», есть две причины: 1) потому что это было проигнорировано при переводе иерархии пользователей, 2) вы использовали диапазон в where. Если вы замените свой кортеж оси строк на ваш кортеж where, он все равно будет показывать «All Period» в качестве диапазона. Однако для решения этой проблемы потребуется всего две даты.
Исходя из этого, при решении вашего запроса у него было два перевода для иерархии атрибутов Date, один сказал игнорировать его на основе иерархии пользователей, другой предоставил диапазон. Вот где из-за конфликта результат неверен.
Теперь давайте рассмотрим запрос, который вы задали мне в своем комментарии ранее
with member [Measures].[CalendarYear] as [Date].[Calendar Year].currentmember.name member [Measures].[CalendarSemester] as [Date].[Calendar Semester of Year].currentmember.name member [Measures].[CalendarQuater] as [Date].[Calendar Quarter of Year].currentmember.name member [Measures].[CalendarMonth] as [Date].[Month of Year].currentmember.name member [Measures].[CalendarDate] as [Date].[Date].currentmember.name SELECT NON EMPTY { [Measures].[Internet Sales Amount] ,[Measures].[CalendarYear],[Measures].[CalendarSemester],[Measures].[CalendarQuater],[Measures].[CalendarMonth],[Measures].[CalendarDate]} ON 0, NON EMPTY { [Date].[Calendar].[Month].&[2013]&[1] } ON 1 FROM [Adventure Works] WHERE {[Date].[Date].&[20130105]}
Обратите внимание, что это время разрешения одного члена, было использовано вместо разрешения иерархии пользователей. Теперь это поведение может быть связано с тем, что один перевод дает «Весь период», а другой дает член, следовательно, член выиграл.
Чтобы еще раз подтвердить это, я внес изменения в мой образец AdventureWorks. Иерархия атрибутов Date основана на столбце «Простая дата». Я выставил «Простую дату» как отдельный атрибут и обработал свой куб.
Посмотрите на запрос «Простая дата» и его результаты.
with member [Measures].[CalendarYear] as [Date].[Calendar Year].currentmember.name member [Measures].[CalendarSemester] as [Date].[Calendar Semester of Year].currentmember.name member [Measures].[CalendarQuater] as [Date].[Calendar Quarter of Year].currentmember.name member [Measures].[CalendarMonth] as [Date].[Month of Year].currentmember.name member [Measures].[CalendarDate] as [Date].[Date].currentmember.name SELECT NON EMPTY { [Measures].[Internet Sales Amount] ,[Measures].[CalendarYear],[Measures].[CalendarSemester],[Measures].[CalendarQuater],[Measures].[CalendarMonth],[Measures].[CalendarDate]} ON 0, NON EMPTY { [Date].[Calendar].[Month].&[2013]&[1] } ON 1 FROM [Adventure Works] WHERE --{[Date].[Date].&[20130105]} {[Date].[Simple Date].&[20130105]:[Date].[Simple Date].&[20130106]}