我想将一个事件从一个元素委托给另一个元素。我有这个简单的测试代码,我得到一个例外:第{12行的Error: UNSPECIFIED_EVENT_TYPE_ERR: DOM Events Exception 0
(发送)。我已阅读this,但之前的注释行没有任何区别。我怎样才能做到这一点?
代码:
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
function init(){}
function delegator(e){
alert('the first');
var other = document.getElementById('myCanvas2');
//e.trigger = other;
other.dispatchEvent(e);
}
$("#myCanvas").live('dblclick', delegator);
$("#myCanvas2").live('dblclick', function(){alert('the second');});
</script>
</head>
<body>
<canvas id="myCanvas" style="width:1200px; height:600px; border: solid black 1px;"></canvas>
<canvas id="myCanvas2" style="width:1200px; height:600px; border: solid black 1px;"></canvas>
</body>
</html>
答案 0 :(得分:4)
.live
前一段时间是deprecated。
由于 使用jQuery,请使用.trigger(...)
function delegator(e){
alert('the first');
$('#myCanvas2').trigger(e);
}
$("#myCanvas").on('dblclick', delegator);
$("#myCanvas2").on('dblclick', function(){alert('the second');});