var x = event.target||event.srcElement;
document.getElementById(x.id).style.left = 200 + "px" ;
document.getElementById(x.id).style.top = 100 + "px" ;
Прекрасно работает в Google Chrome и IE, но не в Firefox. Пробовал в гугле. Google говорит event.srcElement (работает в IE, но не в firefox), поэтому я добавил event.target, но все еще не работает. Есть ли какие-то изменения, которые мне нужно сделать, чтобы работать в firefox? Кстати, я использую версию Firefox 3.5.
function up()
{
dragok = false;
document.onmousemove = null;
var x = event.target||event.srcElement;
document.getElementById(x.id).style.left= 200 + "px" ;
document.getElementById(x.id).style.top= 100 + "px" ;
}
Пожалуйста, помогите мне заставить его работать в firefox
Убедитесь, что вы определили event
как формальный параметр для обработчика.
IE
определяет его глобально, а Chrome
определяет его в обоих местах, поэтому он работает в любом случае, но Firefox
определяет его только как параметр функции.
function up( e ) {
// ^-----------------------------------------------------+
if( !e ) e = window.event; // <---needed this --- and this ->--+
dragok = false;
document.onmousemove = null;
var x = e.target||e.srcElement; // <--- and these
document.getElementById(x.id).style.left= 200 + "px" ;
document.getElementById(x.id).style.top= 100 + "px" ;
}
Это решение для работы в браузере Firefox тоже. При запуске действия keydown
его свойство event
устанавливается равным глобальной переменной следующим образом.
var keyEvent=null;
Назначьте, что свойство event
для keyEvent
и .item
является целевым элементом.
$(document).on("keydown",'.item', function(e){
keyEvent=e;
},this))
затем. Используйте keyEvent
в своем коде.
function up( e ) {
if( !e ) e = keyEvent;
dragok = false;
document.onmousemove = null;
var x = e.target||e.srcElement;
document.getElementById(x.id).style.left= 200 + "px" ;
document.getElementById(x.id).style.top= 100 + "px" ;
}
Примечание : не пытайтесь установить для свойства event
глобальную переменную window
.