Firefox 上的 event.target

发布于 2024-12-05 06:29:02 字数 741 浏览 1 评论 0原文

 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 上工作吗?顺便说一句,我使用的是 3.5 版本的 Firefox。

   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 上运行

 var x = event.target||event.srcElement;
 document.getElementById(x.id).style.left =  200 + "px" ;
 document.getElementById(x.id).style.top  =  100 + "px" ;

Works fine on Google Chrome and IE but not on Firefox. Tried it on Google. Google says event.srcElement (works on IE but not on Firefox) so I have added event.target but still not working. Is there anymore changes I need to do to work on Firefox? By the way I'm using 3.5 version of Firefox.

   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" ;
       } 

Please help me to make it work on Firefox

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

白日梦 2024-12-12 06:29:02

确保将 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" ;
} 

Make sure you define event as a formal parameter to the handler.

IE defines it globally, and Chrome defines it both in both places, so it works either way, but Firefox only defines it as a function parameter.

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" ;
} 
白首有我共你 2024-12-12 06:29:02

我使用 Jquery 解决了我的问题。例如,要获取元素的 id,可以使用:

var x = $(this).attr('id');

I solved my problem using Jquery. For example to get the id of a element you can use:

var x = $(this).attr('id');
醉酒的小男人 2024-12-12 06:29:02

该解决方案也适用于 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的全局变量。

This solution to work in Firefox browser too. When start keydown action then its set the event property to global variable like this.

 var keyEvent=null; 

Assign that event property to keyEvent and .item is target element.

  $(document).on("keydown",'.item', function(e){ 

                keyEvent=e;                                    

        },this))

then.Use keyEvent in your code.

     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" ;
         }

Note: Don't try to set the event property to global variable of window.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文