似乎触发/在jquery事件上标准和自定义都不适用于对象标记。
无效:
var $test = $("<object>");
$test.on("test", function (){
console.log("jquery test handler");
});
$test.trigger("test");
虽然它适用于其他html标签(试过div,视频等)。
Vanilla js解决方案有效:
var test = document.createElement("object");
test.addEventListener("testV", function(e) {
console.log("vanilla test handler");
});
var event = new CustomEvent("testV");
test.dispatchEvent(event);
jQuery ver。 1.11.1
测试:http://codepen.io/anon/pen/dPGoJg
问题:
答案 0 :(得分:1)
您的第一个示例不起作用,因为该元素尚未添加到DOM中。
var $test = $("body").append("<object>");
$test.on("test", function (){
console.log("jquery test handler");
});
$test.trigger("test");
您可以使用其他JQuery函数添加元素。
答案 1 :(得分:0)
更新:
第一篇文章是完全错误的,但这似乎适用于点击对象标签
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$(document).on('click', 'object', function(event) {
console.log("jquery test handler");});
</script>
<object width="400" height="400">Object</object>
重要的部分是$(document)
更新2:使用触发器和自定义事件
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<object>Object</object>
<script>
$(document).on('test', 'object', function(event) {
console.log("jquery test handler");});
$('object').trigger('test');
</script>