Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何延迟javascript onclick函数不继续运行,除非完成对该项的单击_Javascript_Jquery_Html - Fatal编程技术网

如何延迟javascript onclick函数不继续运行,除非完成对该项的单击

如何延迟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.

基本上,我如何才能使javascript函数只在用户完成单击时运行,而在用户单击并按住该项,然后将鼠标从该项上松开时不运行

JS:

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
就可以了。在这里,你们能解释一下这是怎么“延迟”函数执行的吗?我不明白这是怎么回答这个问题的?!现在我真的很困惑,为什么这两次投票都被提高了,真的。。。