Javascript onmouseover 和 onmouseout 在以编程方式创建 <img> 时
Javascript onmouseover and onmouseout when creating <img> programmatically
我在Stack Exchange上找到了有关如何为已经存在的图像标签执行此操作的说明,如下所示:
<img src="./img/action_contact.png" onmouseover="this.src='./img/action_contact_hover.png'" onmouseout="this.src='./img/action_contact.png'">
但是如果我以编程方式创建它,如下所示,我无法弄清楚如何正确使用单引号和双引号来编译和运行代码。
$('<img src="./img/action_contact.png" onmouseover="this.src="./img/action_contact_hover.png";" onmouseout="./img/action_contact.png";">')appendTo('#action' + i);
您需要在
属性中的 JS 字符串周围使用转义的单引号(即 ''
(。您还缺少appendTo
之前的.
。
$('<img src="./img/action_contact.png" onmouseover="this.src=''hover.jpg'';" onmouseout="this.src=''original.jpg'';">').appendTo('#action' + i);
但是,一种更具可读性的方法是使用 jQuery 的 attr
方法。
$('<img src="./img/action_contact.png">')
.attr('onmouseover', 'this.src="hover.jpg";')
.attr('onmouseout', 'this.src="original.jpg";')
.appendTo('#action' + i);
您甚至可以获得真正的动态,并使用事件委派和数据属性来完全分离内容和功能,并摆脱丑陋的事件属性。
//Create an example image.
var i = 1;//for example
$('<img class="swap" />')
.attr('src', 'https://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png')
.attr('data-hoverover', 'https://cdn.sstatic.net/stackexchange/img/logos/se/se-icon.png')
.attr('data-hoverout', 'https://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png')
.appendTo('#action' + i);
//Handle swapping.
$(document)
.on('mouseenter', 'img.swap', function() {
var $this = $(this);
$this.attr('src', $this.attr('data-hoverover'));
})
.on('mouseleave', 'img.swap', function() {
var $this = $(this);
$this.attr('src', $this.attr('data-hoverout'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="action1"></div>
你只需要使用 '
转义一些刻度。
$('<img src="./img/action_contact.png" onmouseover="this.src=''hover.jpg'';" onmouseout="this.src=''original.jpg'';">')appendTo('#action' + i);
相关文章:
- 无法通过javascript动态创建img
- 设置'src'img标记使用主干模板动态创建
- 仅使用JavaScript/获取当前创建的img的位置/放置文本
- 动态设置背景图像或创建img标记有什么区别
- 使用JavaScript创建IMG标记,无效
- 使用 jQuery 创建具有 onerror 属性的 img
- 我收到错误.我需要创建 img 标签
- 在页面上找到img标签,创建og:image元标签并附加到头部
- 捕获<的img加载错误;img>页面加载后创建的标签(例如通过AJAX)
- Javascript创建只有一个维度集的img会导致IE中的拉伸
- 如何在javascript中创建img标签字符串
- 创建一个img元素's src另一个元素's background-image
- 通过链接动态创建img,而不附加多个实例
- 从画布动态创建img元素
- 如何为tinymce创建的img标签设置自定义宽度参数
- 每个函数从数组中创建img元素
- 引用img src中的变量以创建链接
- 从文件夹动态创建img元素
- 创建类似img标记的自定义元素
- 创建 img 元素的最佳 JavaScript 代码是什么?