Это потому, что метод Scanner.nextInt
не использует символ последней новой строки вашего ввода и, следовательно, newline потребляется в следующий вызов Scanner.nextLine
.
Вы столкнетесь с аналогичным поведением, когда вы используете Scanner.nextLine
после Scanner.next()
или любого метода Scanner.nextFoo
(кроме самого nextLine
).
Обход проблемы:
Scanner.nextLine
вызов после Scanner.nextInt
или Scanner.nextFoo
, чтобы потреблять остальную часть этой линии, включая newline int option = input.nextInt();
input.nextLine(); // Consume newline left-over
String str1 = input.nextLine();
Scanner.nextLine
и преобразуете свой ввод в нужный формат. Например, к целому числу с использованием метода Integer.parseInt(String)
. int option = 0;
try {
option = Integer.parseInt(input.nextLine());
} catch (NumberFormatException e) {
e.printStackTrace();
}
String str1 = input.nextLine();
Один из вариантов - проверить type
объекта Selection
, возвращенного window.getSelection
:
function toggleInfo() {
var selection = window.getSelection();
if(selection.type != "Range") {
$("#clicktoshow").toggle();
$("#information").toggle();
}
}
http://jsfiddle.net/k61u66ek/4/
Обновить
Если браузер, на который настроен таргетинг, не предоставляет свойство type
для объекта Selection
, то вы можете протестировать его по длине выбранного вместо этого:
function toggleInfo() {
var selection = window.getSelection();
if(selection.toString().length === 0) {
$("#clicktoshow").toggle();
$("#information").toggle();
}
}
http://jsfiddle.net/k61u66ek/9/
, который, в свою очередь, может быть уменьшен до проверки bool на toString
:
if(!selection.toString()) {
Вы можете проверить, есть ли выбор в обработчике событий click:
window.getSelection().toString();
Вы можете использовать mouseup
, mousedown
и mousemove
события для достижения этого:
var isDragging = false;
$("#clickshow")
.mousedown(function() {
isDragging = false;
})
.mousemove(function() {
isDragging = true;
})
.mouseup(function() {
var wasDragging = isDragging;
isDragging = false;
if (!wasDragging) {
$("#information").toggle();
$("#clicktoshow").toggle();
}
});
Вы можете проверить, отключен ли «информационный» div:
function toggleInfo() {
if(document.getElementById('information').style.display == 'none'){
$("#clicktoshow").toggle();
$("#information").toggle();
} else {
// do nothing
}
}
Проверьте это Fiddle