Я ответил на это в другом вопросе со всеми подробностями, которые могут вам понадобиться:
Обнаруживать IF, зависающий над элементом с помощью jQuery (на момент написания имеется 99 секунд)
В принципе, вы можете сделать что-то вроде:
var ishovered = oi.is(":hover");
Это работает, только если oi
- объект jQuery, содержащий один элемент. Если имеется несколько элементов, то вам необходимо применить к каждому элементу, например:
var hoveredItem = !!$('ol>li').filter(function() { return $(this).is(":hover"); });
// not .filter(':hover'), as we can't apply :hover on multiple elements
Это было протестировано, начиная с jQuery 1.7.
Я только что протестировал несколько браузеров, используя этот глупый фрагмент JavaScript:
function log_newline (msg, test_value) {if (! Test_value) {test_value = document.getElementById ('test ').ценность; } console.log (msg + ':' + (test_value.match (/ \ r /)? 'CR': '') + '' + (test_value.match (/ \ n /)? 'LF': '' )); } log_newline ('источник HTML'); log_newline ('строка JS', "foo \ nbar"); log_newline ('литерал шаблона JS', `bar baz`);
IE8 и Opera 9 в Windows используют \ r \ n
. Все другие протестированные мной браузеры (Safari 4 и Firefox 3.5 в Windows и Firefox 3.0 в Linux) используют \ n
. Все они могут нормально обрабатывать \ n
при установке значения, хотя IE и Opera снова преобразуют его обратно в \ r \ n
внутренне. Есть статья SitePoint с более подробной информацией, которая называется Концы строк в Javascript .
Обратите внимание, что это не зависит от фактических окончаний строк в самом HTML-файле (как \ n
, так и \ r \ n
дают те же результаты).
При отправке формы все браузеры канонизируют символы новой строки в % 0D% 0A
в кодировке URL. Чтобы увидеть это, загрузите, например, data: text / html,
и нажмите кнопку отправки. (Некоторые браузеры блокируют загрузку отправленной страницы, но вы можете видеть значения формы в кодировке URL в консоли.)
Однако я не думаю, что вам действительно нужно что-то делать. Если вы просто хотите разделить текст на новые строки, вы можете сделать что-то вроде этого:
lines = foo.value.split(/\r\n|\r|\n/g);
да, используйте \ n, если только вы не создаете html-код, в котором вы хотите использовать
Я думаю, что да - когда вы работаете со строками JS.
Если вы создаете HTML, вам придется использовать
теги (не
\ n
, поскольку вы больше не имеете дело с JS)
Они просто синтаксический сахар вокруг анонимные делегаты, или есть что-то еще, чего я не вижу?
Хороший вопрос. Ответ сложен. Во-первых, очевидно, что деревья выражений - самые большие. Но есть и тонкости. Вот пять моих многословных и часто отвлекающих статей о том, как лямбда-выражения тонко отличаются от анонимных методов:
\ n
подходит для всех случаев, с которыми я сталкивался. Если вы работаете с Интернетом, используйте \ n
и не беспокойтесь об этом (если у вас нет проблем, связанных с переводом строки).