首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mouse up,Mouse down功能的更快编码

Mouse up,Mouse down功能的更快编码
EN

Stack Overflow用户
提问于 2016-12-01 03:52:53
回答 1查看 48关注 0票数 0

我有一个jQuery函数,当用户单击文本图像描述时,该函数将图像加载到拖放区域。

我有几百张图片。我想知道是否有一种更快、更有效的方法来处理当用户点击文本时更改颜色的代码?我不是编码专家...提亚

代码片段:

代码语言:javascript
复制
$('#p1').click (function(){
loadImage("../images/myImage.png", 150, 100, '.startDropArea');
});

$('#p1').mousedown (function(){
$('#p1').css({"color":"green"});   
});
$('#p1').mouseup (function(){
$('#p1').css({"color":"black"});   
});

HTML

代码语言:javascript
复制
<div data-role="collapsible">
    <h4>Header</h4>
<p id="p1"> Start</p>
EN

回答 1

Stack Overflow用户

发布于 2016-12-01 04:11:56

是的,可以用一种比为每个元素编写处理程序更有效的方式来实现这一点。首先,简单的部分-我们将向所有相关的div添加一个类,这样我们就可以一次性选择它们,并使用它来应用mousedown/mouseup处理程序。

HTML:

代码语言:javascript
复制
<div data-role="collapsible">
    <h4>Header</h4>
    <p class="image-loader" id="p1"> Start</p>
</div>

JS -请注意,我们现在使用$(this)来获取处理函数中的当前元素,并链接我们的调用,这样我们就不必重新选择这些元素:

代码语言:javascript
复制
$('.image-loader').mousedown (function(){
    $(this).css({"color":"green"});   
})
.mouseup (function(){
    $(this).css({"color":"black"});
);

单击功能需要更多的工作,因为虽然我们想要执行的操作对于每个元素都是相同的,但我们可能必须使用不同的图像源。我们将通过在我们的

元素。

HTML:

代码语言:javascript
复制
<div data-role="collapsible">
    <h4>Header</h4>
    <p class="image-loader" data-image-src="../images/myImage.png" id="p1"> Start</p>
</div>

JS:我们现在可以在点击处理程序中获得data属性,并使用它来加载适当的图像。

代码语言:javascript
复制
$('.image-loader').click (function(){
    loadImage($(this).data('image-src'), 150, 100, '.startDropArea');
});

我们还可以将click处理程序链接到之前的mouseup/mousedown处理程序上,所以我们最终的Javascript是...

代码语言:javascript
复制
$('.image-loader')
.mousedown (function(){
    $(this).css({"color":"green"});   
})
.mouseup (function(){
    $(this).css({"color":"black"});
)
.click (function(){
    loadImage($(this).data('image-src'), 150, 100, '.startDropArea');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40896991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档