ondblclick使用onclick javascript无法处理元素

时间:2014-11-29 19:58:58

标签: javascript jquery html

我有以下问题: 我有一个图像。当用户点击它时,它将显示一个警告框,但如果用户双击它我也想删除它。我有以下标记,但它不起作用。

<h1>hello </h1>
            <img src="smile.png" class=" center-block" onclick="alert('Hello')" ondblclick="$('img').remove();">

唯一的工作部分是警报按钮
注意:加载了jquery

4 个答案:

答案 0 :(得分:2)

来自MDN

  

对话框是模态窗口 - 它们阻止用户访问程序界面的其余部分,直到关闭对话框。因此,您不应过度使用任何创建对话框(或模态窗口)的函数。

如果您在点击时触发alert(),则系统会停用该用户界面,您无法在不关闭alert()的情况下立即执行跟进操作。 (你应该听到警告声

答案 1 :(得分:0)

当你想在你的something.js中指定元素时,不要使用内联javascript:

$('.center-block').dbclick(function(){
  $('img').hide();
});

答案 2 :(得分:0)

这适用于您在代码中尝试完成的任务:

jsfiddle示例:http://jsfiddle.net/larryjoelane/gz4gst49/14/

将下面的代码放在身体文档底部的脚本标记中 如果你愿意,仍然可以使用警报:

<script>


//the class to click on
var selector = ".center-block";

//set the doubleClicked variable to 0 meaning false
//in this example
var doubleClicked = 0;

//on single click function for selector class
$(selector).on("click",function(){//begin function


//use time out function to delay execution for specified amount
//of time in this case I used 2 seconds
setTimeout(function () {

    //if doubleClicked equals 0
    if (doubleClicked === 0){//begin if then

            //display alert
            alert("hello");

    }//end if then else

    }, 2000);//<--delay set for two seconds

});//end function

//on double click function
$(selector).on("dblclick",function(){//begin function

    //set doubleClicked to 1 
    doubleClicked = 1;

    //remove the img element
    $("img").remove();


});//end function

 </script>

答案 3 :(得分:0)

您可能想要自己检测dbl-click(使用计时器)。

纯JavaScript中的基本概念是这样的:

<img class=" center-block" 
       src="http://i.stack.imgur.com/pucwG.png" 
   onclick="clearTimeout(this.timer); //catch the second click of dbl-click
            this.timer=setTimeout(function(){ alert('Hello'); }, 250);" 
ondblclick="clearTimeout(this.timer); 
            this.parentNode.removeChild(this);"
>

在这个例子中,我们只是将timer-id(setTimeout的返回值)挂钩到原始元素。
将无效ID传递给clearTimeout没有任何影响(并且不会抛出异常),因此我们甚至不需要检查它是否存在。
延迟时间通常为250毫秒(通常为150毫秒)。

注意:建议您使用更高级的方法来挂钩您的事件,而不是像过滤那样插入事件。