需要双击的Jquery onmousedown?

时间:2012-03-02 18:14:57

标签: php javascript jquery html

我在发帖前搜索过,但没有一篇文章是相关的(说我是J​​query的新手)。

我的问题是,当我点击“添加好友”按钮时,只需单击一下即可触发,但需要双击。

这些是相关的代码部分:

设置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。

3 个答案:

答案 0 :(得分:3)

嗯,好吧,看起来你正在显示同时隐藏你的div:

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;缺少冒号。

答案 1 :(得分:1)

我不完全确定这是代码的相关部分,但是如果你想学习如何将函数绑定到click / doubleclick / 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个函数,并且可以使用link元素上的data- *属性传递相关数据。

答案 2 :(得分:1)

如果要在元素上双击运行任何代码,请使用像这样的jquery,

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

还有一件事使用jquery切换来显示和隐藏下面的元素,
在你的功能上 如果您正在使用选择器的类名,请使用下面的选择器(使用。)以便id使用#with id name,如上面的代码

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

如果双击有效,您可以使用下面的代码,它会将单击转换为双击jquery。希望这会对你有所帮助

  

$('#target')。click(function(){
    $( '#目标')DBLCLICK();
  });