为什么document.ready中的事件处理函数起作用但取出后不起作用?

血火1004

我是Java语言的新手,我想知道下面的行为。

考虑下面的工作代码

 <div><br/><strong>Click Me!</strong></div>   
 <script>

    $(document).ready(function(){
        $('div').mouseenter(function(){
           $(this).fadeTo('fast',1);
        });

        $('div').mouseleave(function(){
           $(this).fadeTo('fast',0.5); 
        });

    });

 </script>

但这不起作用

 <div onmouseover="fade()"><br/><strong>Click Me!</strong></div>   
 <script>

    $(document).ready(function(){

        $('div').mouseleave(function(){
           $(this).fadeTo('fast',0.5); 
        });

    });

    function fade(){
        $(this).fadeTo('fast',1);
    }
 </script>

当我全部使用内联事件处理程序和函数时,为什么第二个不起作用?

提前致谢!

TJ人群

首先,我不会这样做。从使用现代事件处理切换为onXyz属性有点落后。请参阅下面的折叠。

但是要回答为什么它不起作用的问题:thisfade第二个示例中,对的调用中没有div(它是全局对象,又名window在浏览器中)。您必须将其更改onmouseover为:

onmouseover="fade.call(this)"

...this在通话期间成为div。

(另外,请注意,您onmouseover在第二个代码块中使用了,但mouseenter在第一个代码块中使用了。我将其保留为onmouseover,但您可能想要onmouseneter使用它。)

例子:

$(document).ready(function(){

  $('div').mouseleave(function(){
    $(this).fadeTo('fast',0.5); 
  });

});

function fade(){
  $(this).fadeTo('fast',1);
}
<div onmouseover="fade.call(this)"><br/><strong>Click Me!</strong></div>   
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

或者,只需将其this作为参数传递并更改fade为使用它:

$(document).ready(function(){

  $('div').mouseleave(function(){
    $(this).fadeTo('fast',0.5); 
  });

});

function fade(element){
  $(element).fadeTo('fast',1);
}
<div onmouseover="fade(this)"><br/><strong>Click Me!</strong></div>   
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


但是同样,我不会使用onXyz属性。如果您不希望在ready回调中使用处理程序,则不需要这样做,但这并不意味着您必须切换到使用属性进行事件连接。反而:

$('div').mouseleave(function(){
  $(this).fadeTo('fast',0.5); 
});
$('div').mouseenter(function(){
  $(this).fadeTo('fast',1); 
});

例子:

$('div').mouseleave(function(){
  $(this).fadeTo('fast',0.5); 
});
$('div').mouseenter(function(){
  $(this).fadeTo('fast',1); 
});
<div><br/><strong>Click Me!</strong></div>   
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我的代码在 $(document).ready() 函数中不起作用。谁能帮我理解为什么?

来自分类Dev

为什么在R中执行fix()后该函数起作用

来自分类Dev

document.ready函数在iframe中不起作用

来自分类常见问题

为什么此onChange函数起作用?

来自分类Dev

为什么此cfscript函数起作用?

来自分类Dev

为什么此onChange函数起作用?

来自分类Dev

$(document).ready()不起作用

来自分类Dev

$ {document).ready不起作用

来自分类常见问题

为什么在使用()调用Node.js REPL中的函数起作用?

来自分类Dev

为什么IList的UpdateModel()绑定不起作用,但是作为方法参数起作用?

来自分类Dev

为什么触摸事件不起作用?

来自分类Dev

为什么document.title对SVG不起作用?

来自分类Dev

为什么document.getElementById不起作用?

来自分类Dev

新页面加载后,Document.ready函数不起作用

来自分类Dev

新页面加载后,Document.ready函数不起作用

来自分类Dev

为什么多处理不起作用?

来自分类Dev

为什么悬停在委托事件处理程序中不起作用?

来自分类Dev

为什么oncreate事件中的方法不起作用?

来自分类Dev

为什么保存事件在云代码中不起作用?

来自分类Dev

为什么我在WPF中的触发事件不起作用?

来自分类Dev

为什么保存事件在云代码中不起作用?

来自分类Dev

为什么点击事件在图例中不起作用?

来自分类Dev

Document.Ready函数似乎不起作用

来自分类Dev

Python 2.7.11:为什么一个函数调用只对一个函数起作用,而对另一个函数却不起作用?

来自分类Dev

为什么错误处理在Laravel中不起作用

来自分类Dev

为什么didReceiveData函数不起作用

来自分类Dev

为什么system()函数不起作用?

来自分类Dev

bash函数-为什么不起作用

来自分类Dev

为什么.hasClass函数不起作用?

Related 相关文章

  1. 1

    我的代码在 $(document).ready() 函数中不起作用。谁能帮我理解为什么?

  2. 2

    为什么在R中执行fix()后该函数起作用

  3. 3

    document.ready函数在iframe中不起作用

  4. 4

    为什么此onChange函数起作用?

  5. 5

    为什么此cfscript函数起作用?

  6. 6

    为什么此onChange函数起作用?

  7. 7

    $(document).ready()不起作用

  8. 8

    $ {document).ready不起作用

  9. 9

    为什么在使用()调用Node.js REPL中的函数起作用?

  10. 10

    为什么IList的UpdateModel()绑定不起作用,但是作为方法参数起作用?

  11. 11

    为什么触摸事件不起作用?

  12. 12

    为什么document.title对SVG不起作用?

  13. 13

    为什么document.getElementById不起作用?

  14. 14

    新页面加载后,Document.ready函数不起作用

  15. 15

    新页面加载后,Document.ready函数不起作用

  16. 16

    为什么多处理不起作用?

  17. 17

    为什么悬停在委托事件处理程序中不起作用?

  18. 18

    为什么oncreate事件中的方法不起作用?

  19. 19

    为什么保存事件在云代码中不起作用?

  20. 20

    为什么我在WPF中的触发事件不起作用?

  21. 21

    为什么保存事件在云代码中不起作用?

  22. 22

    为什么点击事件在图例中不起作用?

  23. 23

    Document.Ready函数似乎不起作用

  24. 24

    Python 2.7.11:为什么一个函数调用只对一个函数起作用,而对另一个函数却不起作用?

  25. 25

    为什么错误处理在Laravel中不起作用

  26. 26

    为什么didReceiveData函数不起作用

  27. 27

    为什么system()函数不起作用?

  28. 28

    bash函数-为什么不起作用

  29. 29

    为什么.hasClass函数不起作用?

热门标签

归档