2012-03-02 144 views
1

我之前已经搜索过,但没有任何帖子是相关的(说我是J​​query的新手)。需要双击的Jquery onmousedown?

我的问题是当我点击“添加朋友”按钮它不会触发一次点击,但它需要双击。

这些是代码中的相关部分:

设置DIV:

$fField = <div style="display:inline; border:#CCC 1px solid; padding:5px; background-color:#E4E4E4; color#999; font-size:11px;"> 
    <a href="#" onclick="return false" onmousedown="javascript:friendArea(\'addFriend\');">Add Friend</a> 
    </div>; 

使用Javascript:

function friendArea(x){ 
    //alert(x); 
    if($('#'+x).is(":hidden")){ 
     $('#'+x).slideDown(200); 
    } else { 
     $('#'+x).hide(); 
    } 
    $('.friendSlide').hide(); 
} 

显示(这需要2的一个消息点击被显示)

<div class="friendSlide" id="addFriend">Are you sure?</div> 

任何帮助将不胜感激!哦,我正在使用最新版本的jQuery。

+0

由于某种原因,当我编辑它时,解析代码:S给我2秒,或者它丢失了大部分 – Jack4 2012-03-02 18:20:19

+0

你传递给friendArea()函数的'x'是什么? – codef0rmer 2012-03-02 18:20:53

+0

呃,你仍然没有''onclick'事件分配给''div',并且没有'onclick'函数的代码。 – 2012-03-02 18:21:09

回答

3

嗯,好了,它看起来像你展示同时隐藏你的格:

HTML:

<div class="friendSlide" id="addFriend">Are you sure?</div> 

JS:

function friendArea(x){ 
    //alert(x); 
    if($('#'+x).is(":hidden")){ 
     $('#'+x).slideDown(200); 
    } else { 
     $('#'+x).hide(); 
    } 
    $('.friendSlide').hide(); 
} 

你打电话friendArea('addFriend'),这应该滑动您的div,但在功能的末尾你隐藏.friendSlide,其中你的div也是一个类。你基本上每时间隐藏它。这不可能是你想要的。

注释掉该行和它的作品:http://jsfiddle.net/Ggdhp/

当然,你可能有针对不同的原因,但我觉得你得到一些div和类混合起来。

注: 我也建议你不要使用内嵌的CSS或JavaScript。它总是使调试变得更加困难,并且当你最终不得不将所有内容放在一行中并且避免引号时,你会错过错别字。例如,您的div风格中的color#999;缺少冒号。

+0

谢谢你完美! – Jack4 2012-03-02 18:34:23

+0

请注意我添加了关于内联css和脚本的评论。 – 2012-03-02 18:35:30

1

我不能完全肯定这是代码的相关部分,但如果你想学习如何绑定功能,单击/双击的/ etc:

http://api.jquery.com/category/events/mouse-events/

我假设你有一个按钮/链接的地方,有某种程度:

<a href="#" onclick="friendArea('friendName')">Add Friend</a> 

什么,你会想这样做反而是给该按钮的一类,表明这是一个添加好友按钮,使用jQuery的双击功能添加到它。

<a href="#" class="addFriend-button" data-friendName="friendName">Add Friend</a> 

$('.addFriend-button').click(function(e) { 
    friendArea($(this).data('friendName')); 
}); 

这会导致您的功能在双击按钮时触发,而不是单击。它还允许您只需编写1个函数,并且可以在链接元素上使用data- *属性传递相关数据。

如果你想运行在双击一个元素上使用jQuery像这样的任何代码
+0

嗨布赖恩,即时通讯寻找它被解雇,单击不双,在其时只显示双击的隐藏框 – Jack4 2012-03-02 18:26:21

+0

他不想双击。他说它只会在第二次点击时发射。他想知道为什么它不会在第一次开火。我认为。 – 2012-03-02 18:27:19

+0

@JeffB yep thats right :) – Jack4 2012-03-02 18:28:03

1

$('#target').dblclick(function() { 
    alert('Handler for .click() called.'); 
}); 

还有一件事使用jQuery切换显示和隐藏像下面的元素,
你的函数 如果你是在ID使用#情况下使用选择的类名使用选择像下面(使用)与ID名称,如上面的代码

$('.target').toggle(); 

如果双击适用于您使用下面的代码,将其转换单点击以双击jQuery的。希望这将帮助你

$( '#目标')。点击(函数(){
$( '#目标')。DBLCLICK();
});

+0

我正在寻找一个单一的点击,因为此刻它的唯一触发双击 – Jack4 2012-03-02 18:25:21