2014-03-09 2 views
0

В случае, когда Javascript знает, какие элементы можно щелкнуть, следует использовать Javascript для изменения курсора мыши (путем изменения css), поскольку практически говоря, курсор мыши не является стилем свойство рассматриваемого элемента? Я знаю, что это вопрос, требующий некоторого распространения мнений, поэтому я ищу ответ, который охватывает обе стороны аргумента, - относится к соответствующей экспертизе - и, надеюсь, приходит к выводу.Отличие стиля и логики: смена курсоров мыши

Просто чтобы быть ясно, если один будет иметь интерактивный элемент списка, например, обычно можно были бы добавить в Javascript

someLib.listen("#id li",func); 

и в CSS

#id li{ 
    cursor:pointer; 
} 

, а не someLib.listen обработки этого. Например, в моем случае я менял слушателя из дочернего элемента на родительский элемент, и мне просто показалось мне, что он не соответствует правилам разделения логики и представления, которые мне пришлось менять в двух местах.

+0

ближе всего мы можем отделить DOM, изменяя javascript с нашими «стилями», это добавлять/удалять имена классов css и избегать написания javascript, который устанавливает встроенный стиль. –

+0

Ну, если вы не считаете, что изменение стиля «курсор» имеет свойство стиля, можно утверждать что * логически * он должен обрабатываться javascript, и ничто не будет неправильным при доступе к 'document.body.style.cursor' на пару прослушивателей mousemove. –

+1

Я знаю, что вы говорите, но fwiw - cursor * is * определяется в спецификации css как свойство стиля, поэтому что мы можем сделать:) - Если вы адаптируете или используете (например, jquery) стиль js shorthands для установки обработчиков событий, тогда достаточно легко заполнить строку, чтобы установить стиль курсора (по умолчанию) - не нужно постоянно устанавливать его? –

ответ

1

Я предпочитаю использовать все это время для «JavaScript», созданных ссылок, не являющихся элементами анкерных (дивы, охватывает эт все)

.jsclick { cursor:pointer } 

Тогда всякий раз, когда мы создаем обработчик событий в JS мы придаем этому классу (в рамках курса)

_elementwithhandler.className += ' jsclick'; 

На самом деле мы ничего не можем сделать для не-якорных элементов. Независимо от того, чтобы установить его в линии или использовать класс, мелочь ..

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

+1

, если вы ожидаете, что CSS может быть отделен от js вниз по строке - тогда добавление стиля курсора непосредственно в строке, вероятно, лучше всего/лучше, все равно пусть ваши js создают теги '', если они должны быть элементами, которые можно щелкнуть –

Смежные вопросы