在Javascript中使用onClick函数有什么问题?

在Javascript中使用onClick函数有什么问题?,javascript,jquery,Javascript,Jquery,程序员不喜欢在Javascript中使用onClick函数有什么特别的原因吗 禁用javascript时,您的问题不清楚。你指的是什么批评?唯一浮现在脑海的是朝着目标前进。这样做的目的只是让标记尽可能简单,并将所有代码放在一个地方。因此,不是: <a id="link" href="..." onclick="open_new_window(); return false;">Open Window</a> 这更易于维护和阅读。我们不使用onclick是真的吗?不,那不

程序员不喜欢在Javascript中使用onClick函数有什么特别的原因吗

禁用javascript时,您的问题不清楚。你指的是什么批评?唯一浮现在脑海的是朝着目标前进。这样做的目的只是让标记尽可能简单,并将所有代码放在一个地方。因此,不是:

<a id="link" href="..." onclick="open_new_window(); return false;">Open Window</a>

这更易于维护和阅读。

我们不使用onclick是真的吗?不,那不是真的

仅供参考,onClick是HTML元素的事件处理程序

我们可能正在使用onclick,但是由于使用框架的方便性和习惯性,您可能看不到实际的代码

因此可能会有变化

这是一个:

<div onclick="alert('yes');"></div>

这是另一个:

<div id="clickable"></div>
<script type="text/javascript">
  document.getElementById('clickable').onclick=function(){alert('yes');};
</script>

document.getElementById('clickable').onclick=function(){alert('yes');};
这是在使用jQuery:

<div id="clickable"></div>
<script type="text/javascript">
  $('#clickable').click(function(){alert('yes');});
</script>

$('#clickable')。单击(函数(){alert('yes');});

谁说程序员不使用onClick?这并不是说程序员不使用onClick,这是程序员应该避免的。我确实从我的一位同事那里听说它会导致堆栈溢出……你是在re:to onClick中谈论这个问题吗?这听起来不像是onClick特有的问题,而是任何javascript事件处理程序/方法绑定都可能发生的命名/作用域冲突。此外,
addEvent
(等)可以为每个事件附加多个处理程序,而
onClick
(等)只能有一个处理程序
<div id="clickable"></div>
<script type="text/javascript">
  document.getElementById('clickable').onclick=function(){alert('yes');};
</script>
<div id="clickable"></div>
<script type="text/javascript">
  $('#clickable').click(function(){alert('yes');});
</script>