2016-12-16 2 views
0

У меня есть пользовательский интерфейс, который лучше всего использовать с мышью. Но его легко можно использовать и на сенсорном экране. enter image description here Существует большой table со многими строками и столбцами.Относитесь только к мыши, как мышь, а не к клику

Вы наведите курсор, и TD, на котором вы находитесь, подсвечивается. Это позволяет вам узнать, есть ли у вас правильный TD. Вы щелкаете по выделенному TD и теперь происходит подтверждающее действие.

Вот что я себе происходящее на мобильный:

Вы нажмите, и TD вы на подсвечивается. Это позволяет вам узнать, есть ли у вас правильный TD. Вы снова нажимаете на выделенный ТД и теперь происходит подтверждающее действие.

Так это то, что у меня было раньше:

$(document).on('mousover','td.cell',function(){ 
    cell.highlight(); 
}); 
$(document).on('click','td.cell',function(){ 
    cell.confirm(); 
}); 
$(document).on('mouseleave','td.cell',function(){ 
    cell.clearHighlight(); 
}); 

То, что я думал, что было бы легко исправить

$(document).on('click','td.cell',function(){ 
    if(cell.isHighlighted) 
     cell.confirm(); 
    else 
     cell.highlight(); 
}); 

держать все остальное то же самое.

, но что происходит, на мобильном устройстве я вызываю ОБОЛОЧКУ и щелчок одним нажатием. Поэтому он выделит, а затем сразу подтвердит.

Как я могу убедиться, что они не будут происходить одновременно?

ответ

1

Как насчет использования onclick, вы используете onfocus?

  1. Этот чистый метод css, который я предпочитаю, и css имеет тенденцию быть более совместимым на всех устройствах.
  2. Вы бы использовали класс стиля, который обычно существует.
  3. Та же конструкция: Мне нравится иметь такой же стиль, когда это возможно.
  4. onFocus предназначен для подсветки onFocus (щелкните), а также имеет эффекты зависания, если вы хотите использовать его для пользователей настольных компьютеров. Пользователи 5.Desktop должны оставаться в курсе onHover, чтобы сохранить выделение, в то время как пользователи мобильных телефонов сосредоточены на них.) Что делает лучший UX?

Для меня это меньше кода, легкий вес, css с существующими классами тока и более совместимыми.

По крайней мере, это мои мысли. Cheers :)

+0

Мне нравится идея, но нет никакой разницы, если я использую '. («Click'' или '.На (» фокуса click''. На мобильных устройствах, с одним краном я все еще запускающим оба, мышь И щелчок (или щелчок фокуса). Сообщите мне, если я не понимаю – olli

+1

@olli Пожалуйста, см. обновленную аргументацию. Cheers! –

+0

Я думаю, это было бы отличным решением - к сожалению, моя реализация немного сложнее. Я работаю в рамках существующей системы электронной торговли, поэтому я адаптируюсь в своих таблицах стилей и таблицах и т. Д. Также я выделяю больше, чем одну ячейку за раз, с использованием сложных правил. Поэтому я думаю, что я вынужден использовать Javascript. Хороший ответ в любом случае !! :-) – olli

1

Это 2 совершенно разных ответа, поэтому я добавил второй метод.

, но что будет, на мобильном устройстве Я вызову ОБОЛОЧКА И нажмите одним касанием. Поэтому он выделит, а затем сразу подтвердите.

Как я могу убедиться, что они не будут происходить одновременно?

Вы можете найти мобильные устройства и опустить .hover для них.

if(!!('ontouchstart' in window)){ 
//touch device events go here 
} 
else{ 
//mouse device events go here 
} 
Смежные вопросы