Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery不会触发事件 测试 功能按钮勾选(e) { 警报(如数据、颜色); } jQuery('#but1').bind('click',{color:'red'},buttonClicked); jQuery('#but2').bind('click',{color:'blue'},buttonClicked);_Javascript_Jquery_Html - Fatal编程技术网

Javascript jquery不会触发事件 测试 功能按钮勾选(e) { 警报(如数据、颜色); } jQuery('#but1').bind('click',{color:'red'},buttonClicked); jQuery('#but2').bind('click',{color:'blue'},buttonClicked);

Javascript jquery不会触发事件 测试 功能按钮勾选(e) { 警报(如数据、颜色); } jQuery('#but1').bind('click',{color:'red'},buttonClicked); jQuery('#but2').bind('click',{color:'blue'},buttonClicked);,javascript,jquery,html,Javascript,Jquery,Html,单击时不会触发警报。这是为什么?您将脚本放置在定义元素的位置上方,因此当代码执行时,没有任何可绑定的内容。最简单的解决方案是仅在文档准备就绪时执行脚本 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xht

单击时不会触发警报。这是为什么?

您将脚本放置在定义元素的位置上方,因此当代码执行时,没有任何可绑定的内容。最简单的解决方案是仅在文档准备就绪时执行脚本

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<script type="text/javascript" src="jquery.js"></script>


  <script type="text/javascript">

  function buttonClicked(e)
  {

    alert(e.data.color);  
  }

 jQuery('#but1').bind('click',{color:'red'},buttonClicked);
  jQuery('#but2').bind('click',{color:'blue'},buttonClicked);
</script>
</head>



<body>

<br/><br/><br/><br/>
    <div align="center">
    <form action="" method="get">

    <input id="but1" type="button"  value="Red" />
    <input id="but2" type="button" value="Blue" />
    </form>
    </div>


</body>
</html>
这项工作:

jQuery(function($) {
    $('#but1').bind('click',{color:'red'},buttonClicked);
    $('#but2').bind('click',{color:'blue'},buttonClicked);
}

因为如果在元素落下之前在标记中设置了单击处理程序,则您正在选择的元素还不可用。当解析页面时,元素对DOM可用<代码>$(文档).ready()等待页面完全解析并准备就绪。请查看文档中的
ready()
函数:
function buttonClicked(e) {
    alert(e.data.color);  
}

$(document).ready(function(){
    jQuery('#but1').bind('click',{color:'red'},buttonClicked);
    jQuery('#but2').bind('click',{color:'blue'},buttonClicked);
});