按钮1工作正常,但是当我尝试动态插入按钮2时,onclick事件不会调用其映射函数,任何线索如何工作?这是一个简单的例子,但后来我需要从复杂的对象中捕获事件,比如trackbar的scroll事件。
<html>
<head>
<title>a simple first page</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#form").append("<input id='button2' type='button' value='button 2'>");
});
</script>
<script language="vbscript">
Sub Button1_OnClick()
MsgBox "button 1"
End Sub
Sub Button2_OnClick()
MsgBox "button 2"
End Sub
</script>
</head>
<body>
<form id="form"><input id="button1" type="button"
value="button 1"></form>
</body>
</html>
答案 0 :(得分:0)
如果要向DOM添加新按钮,请使用jquery的live()
函数:
$('[type=button]').live('click', function() { alert('Clicked button'+$(this).val(); } );
这将为所有当前DOM元素添加事件,并且'尚未'创建它们!
答案 1 :(得分:0)
我不确定VB脚本,但是,您可以使用jQuery实时函数将任何处理程序附加到任何按钮,或者在创建输入并附加到表单时为onclick事件分配函数。
参见示例
<script type="text/javascript">
$(document).ready(function() {
$("#form").append("<input id='button2' type='button' value='button 2'>");
});
function button_2(){
alert('message 2')
}
// using jQuery live
$('#button2').live('click',button_2);
// other way attaching onclick value to input while creating it
$(document).ready(function() {
$("#form").append("<input onclick='button_2()' id='button2' type='button' value='button 2'>");
});
</script>
答案 2 :(得分:0)
如何被Button1_Click
调用?在IE中是否存在某种隐式绑定,我不知道?我这样做的方法是添加一个attachEvent()
的事件。
IE not allowing onClick event on dynamically created DOM 'a' element