如何延迟javascript onclick函数不继续运行,除非完成对该项的单击
基本上,我如何才能使javascript函数只在用户完成单击时运行,而在用户单击并按住该项,然后将鼠标从该项上松开时不运行 JS:如何延迟javascript onclick函数不继续运行,除非完成对该项的单击,javascript,jquery,html,Javascript,Jquery,Html,基本上,我如何才能使javascript函数只在用户完成单击时运行,而在用户单击并按住该项,然后将鼠标从该项上松开时不运行 JS: var foosetter = function (param) { var urlset = param.getAttribute("src"); $('#selectedFooImg').attr("src", urlset); }; <img onclick="foosetter(this)" src="assets/foo/foo1.
var foosetter = function (param)
{
var urlset = param.getAttribute("src");
$('#selectedFooImg').attr("src", urlset);
};
<img onclick="foosetter(this)" src="assets/foo/foo1.png" class="fooimg" alt="Foo Image">
HTML:
var foosetter = function (param)
{
var urlset = param.getAttribute("src");
$('#selectedFooImg').attr("src", urlset);
};
<img onclick="foosetter(this)" src="assets/foo/foo1.png" class="fooimg" alt="Foo Image">
使用鼠标()
单击事件已经实现了此功能。确保img面积不大于您预期的面积。还可以添加draggable=“false”,以便无法拖动图像
$('.fooimg')。单击(函数(参数)
{console.log('it works');
//var urlset=param.getAttribute(“src”);
//$('#selectedFooImg').attr(“src”,urlset);
});代码>
如果您只对mouseup事件感兴趣,请单击而不是使用mouseup
事件。(onmouseup
如果您使用不太好的内联JS)。如果鼠标按钮在元素外部释放,则不应触发onclick。您在哪个浏览器上遇到此问题?(主题外建议)param
由于函数属性可以接受咖啡、药物和饼干,因此术语可能有点混乱,我建议使用,即:elem
,因为您正在传递HTMLImageElement对象。如果您需要触发这两个事件,那么您很酷,由于如果实际的单击释放发生在初始的单击
事件目标元素之外,则不会触发单击
。。。因此,从逻辑上讲,您不应该在mousedown上运行任何函数。@A.Wolff(漂亮的捕获)我很确定OP错过了一些解释,问题注册为click
的确切浏览器被忽略,因为它与事件不匹配。target
s.Ya但这与click on element不同,这不是我理解预期行为的方式。如果OP想要完成一次点击,他需要使用点击事件,而不仅仅是鼠标。如果他的代码不起作用,那么在一系列CLASS
元素上的querySelector
就没有什么用处了。。。可能(因为有多个类元素的可能性也更大)是使用querySelectorAll
,或者更确切地说(为了防止IE8与CSS3选择器不兼容)使用jQuery->,因为OP已经使用jQuery:)只需使用mouseup
就可以了。在这里,你们能解释一下这是怎么“延迟”函数执行的吗?我不明白这是怎么回答这个问题的?!现在我真的很困惑,为什么这两次投票都被提高了,真的。。。