Это незаконно, потому что инициализация полей в точности является причиной, почему существуют конструкторы!
В Java невозможно иметь код где-либо «вне» метода или конструктора (или инициализатор класса ). В инициализаторе поля могут быть простые выражения, но не несколько операторов:
public class Test {
// here, at class level, you can only declare fields, methods or constructors!
// But you cannot have procedural code!!!
// field without initializer (=> default initialization with null)
private List<String> list1;
// field with explicit initializer expression
private List<String> list2 = new ArrayList<String>();
public Test() {
// initialize fields
this.list1 = new ArrayList<>();
this.list2.add("asdf");
}
}
Сначала вы сохраняете возвращаемое значение для функции setTimeout
:
// Set the timeout
var timeout = setTimeout(function()
{
// Your function here
}, 2000);
Затем, когда вы будете готовы убить тайм-аут ... вы просто вызовите clearTimeout
с сохраненным значением из предыдущего вызова setTimeout
.
// Then clearn the timeout
clearTimeout(timeout);
jQuery 1.4 имеет встроенный метод обработки задержек для анимации, вы можете сделать что-то вроде этого:
$("#mini-txt").html("Thank you!");
$("#mini").fadeIn("fast").delay(3000).animate({height: "hide", opacity: "hide"}, "medium");
А потом, когда вы захотите очистить очередь анимации, вы можете сделать:
$("#mini").stop(true);
Вы можете использовать .stop ()
Остановить текущую анимацию для согласованных элементов.