У меня есть список. По умолчанию для всех элементов включены itemInvoke
и single-selection
. Но теперь я хотел бы отключить selection
и itemInvoke
(и событие, и анимацию) для одного конкретного элемента с идентификатором «disableMe». Есть ли способ сделать это? Или можно отключить событие для всей группы (не для всего списка).?
Отключить выбор и событие itemInvoke для определенного элемента в списке
Ответы (1)
Отвечая на мой собственный вопрос, потому что я случайно понял это сегодня. Пожалуйста, посоветуйте, если у вас есть лучшее решение для этой проблемы.
В приложении Metro Style выбор в элементе управления ListView обычно можно активировать Right-Click
с помощью мыши или небольшим «перетаскиванием»/«пролистыванием» касанием. Чтобы отключить сенсорный выбор, вам нужно перезаписать обработчик событий MSPointerDown
для этого конкретного элемента. Чтобы отключить выбор «Правой кнопкой мыши», вам необходимо перезаписать событие oncontextmenu
для этого конкретного элемента.
Если вы создаете itemTemplate
в Javascript
:
function listViewItemTemplate(item) {
// data has boolean properties called 'doNotSelectMe' and 'doNotInvokeMe'
var data = item.data._value;
var itemElement = document.createElement('div');
var itemElement.id = 'testElement';
if (data.doNotSelectMe) {
// disable mouse selection
itemElement.oncontextmenu = function (e) { e.stopPropagation(); };
// disable touch selection
itemElement.addEventListener('MSPointerDown', function (e) {
e.stopPropagation();
});
}
if (data.doNotInvokeMe) {
//disable item invoke event
itemElement.onclick = function (e) { e.stopPropagation(); };
}
return {element: itemElement}
}
person
louis.luo
schedule
15.06.2012
Итак, я выбираю шаблон динамически:
element = document.querySelector(".inputTemplate");
, а затем вскоре после этого визуализирую его в новый контейнер: var container = document.createElement("div");
element.winControl.render(currentItem.data, container);
, а затем проверяю, относится ли элемент к определенному типу, и делаю то, что вы написали, сработало в первый раз. спасибо
- person Robb C; 30.08.2012