У меня была такая же ошибка, но я исправил ее, изменив файл php.ini
.
Найти файл php.ini см. в Чувак, где мой php.ini?
, затем откройте его с помощью вашего любимого редактора.
Найдите свойство short_open_tag
и примените следующее изменение:
; short_open_tag = Off ; previous value
short_open_tag = On ; new value
Оценка Мира' решение: это не работает, если пользователь нажимает больше чем одну кнопку намеренно или случайно. Не спрашивайте меня, как я знаю :-(.
правильный код должен быть похожим на это:
var mouseDown = 0;
document.body.onmousedown = function() {
++mouseDown;
}
document.body.onmouseup = function() {
--mouseDown;
}
С тестом как это:
if(mouseDown){
// crikey! isn't she a beauty?
}
, Если Вы хотите знать то, что кнопка нажимается, быть готовой сделать mouseDown массивом счетчиков и считать ими отдельно для отдельных кнопок:
// let's pretend that a mouse doesn't have more than 9 buttons
var mouseDown = [0, 0, 0, 0, 0, 0, 0, 0, 0],
mouseDownCount = 0;
document.body.onmousedown = function(evt) {
++mouseDown[evt.button];
++mouseDownCount;
}
document.body.onmouseup = function(evt) {
--mouseDown[evt.button];
--mouseDownCount;
}
Теперь можно проверить, какие кнопки были нажаты точно:
if(mouseDownCount){
// alright, let's lift the little bugger up!
for(var i = 0; i < mouseDown.length; ++i){
if(mouseDown[i]){
// we found it right there!
}
}
}
Теперь быть предупрежденным, что код выше работал бы только на стандартно-совместимые браузеры, которые передают Вас номер кнопки, запускающийся от 0 и. IE использует немного маски в настоящее время нажатых кнопок:
, Так скорректируйте свой код соответственно! Я оставляю его как осуществление.
И помните: IE использует глобальный объект-событие, названный … "событие".
Случайно IE имеет функцию, полезную в Вашем случае: когда другие браузеры отправляют "кнопку" только за событиями кнопки мыши (onclick, onmousedown, и onmouseup), IE отправляет его с onmousemove также. Таким образом, можно начать прислушиваться к onmousemove, когда необходимо знать состояние кнопки и проверку на evt.button, как только Вы получили его — теперь Вы знаете, какие кнопки мыши были нажаты:
// for IE only!
document.body.onmousemove = function(){
if(event.button){
// aha! we caught a feisty little sheila!
}
};
, Конечно, Вы ничего не получаете, если она играет мертвый и не движущийся.
Необходимые ссылки:
MSDN № 1 : Я не знаю, почему я перенес document.body-стиль кода. Будет лучше присоединить обработчики событий непосредственно к документу.
Ну, Вы не можете проверить, снижается ли это после события, но можно проверить, произошло ли это... Если это произошло.. это означает, что больше не снижается на :P lol
, Таким образом, пользователь придавливает кнопку (onMouseDown событие)... и после этого, Вы проверяете, произошел ли (onMouseUp). В то время как это не, можно сделать то, в чем Вы нуждаетесь.
Необходимо обработать MouseDown и MouseUp и установить некоторый флаг или что-то для отслеживания его "позже в будущем"... :(
Я думаю, что лучший подход к этому должен вести Ваш собственный учет состояния кнопки мыши, следующим образом:
var mouseDown = 0;
document.body.onmousedown = function() {
mouseDown = 1;
}
document.body.onmouseup = function() {
mouseDown = 0;
}
и затем, позже в Вашем коде:
if (mouseDown == 1) {
// the mouse is down, do what you have to do.
}
Следующий отрывок попытается выполнить функцию "doStuff" спустя 2 секунды после того, как событие mouseDown произойдет в document.body. Если пользователь поднимет кнопку, то событие mouseUp произойдет и отменит задержанное выполнение.
я советовал бы использовать некоторый метод для вложения события перекрестного браузера - установка mousedown и mouseup свойств явно была сделана для упрощения примера.
function doStuff() {
// does something when mouse is down in body for longer than 2 seconds
}
var mousedownTimeout;
document.body.onmousedown = function() {
mousedownTimeout = window.setTimeout(doStuff, 2000);
}
document.body.onmouseup = function() {
window.clearTimeout(mousedownTimeout);
}
Можно объединить @Pax и мои ответы, чтобы также получить продолжительность, для которой снизилась мышь:
var mousedownTimeout,
mousedown = 0;
document.body.onmousedown = function() {
mousedown = 0;
window.clearInterval(mousedownTimeout);
mousedownTimeout = window.setInterval(function() { mousedown += 200 }, 200);
}
document.body.onmouseup = function() {
mousedown = 0;
window.clearInterval(mousedownTimeout);
}
Затем позже:
if (mousedown >= 2000) {
// do something if the mousebutton has been down for at least 2 seconds
}