2012-03-02 152 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