我有这个代码
<object data="images/logo.svg" type="image/svg+xml" class="icon-logo"></object>
和jQuery
$(".icon-logo").click(function() {
.....
});
但我无法点击事件。
我有这个代码
<object data="images/logo.svg" type="image/svg+xml" class="icon-logo"></object>
和jQuery
$(".icon-logo").click(function() {
.....
});
但我无法点击事件。
关于jQuery部分,尽量使用事件委托。
从文档:
.on() 方法将事件处理程序附加到 jQuery 对象中当前选定的一组元素。
$(document).on('click', '.icon-logo', function(event) {
document.write('Event type: ' + event.type);
document.write('<br>CSS-Class: ');
document.write($(this).attr('class'));
});
// As said in the docs, you can attach multiple events to multiple selectors.
// A typical example of use may be:
// $(document).on('change blur', '.icon-logo .some-other-class', function() {...}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<object data="images/logo.svg" type="image/svg+xml" class="icon-logo" style="cursor: pointer;">Click me!</object>
在@Kaiido 的评论后编辑:
<object>
无法点击元素。一种可能性可能是根本不使用 an<object>
而是使用一个<img>
标签,而不是按照此 SO 答案中的建议:使 html svg 对象也是一个可点击的链接。
这种标签<object>
需要一些内容才能显示在页面上。
你的标签:
<object data="images/logo.svg" type="image/svg+xml" class="icon-logo"></object>
没有任何内部 HTML 内容,因此您将无法单击它。
实现此目标的最简单方法是将对象标签包装在一个 div 中,将点击侦听器绑定到该 div,然后添加pointer-events: none
到对象标签的样式中。
样品小提琴:
.clickable {
background: red;
width: 100px;
height: 100px;
border-radius: 100px;
overflow: hidden;
}
object {
width: 100%;
pointer-events: none;
}
<div class='clickable' onclick='alert("WOW")'>
<object type='image/svg+xml' data='https://douglasduhaime.com/assets/images/icons/home.svg' />
</div>