2013-03-11 69 views
1

我已經堅持了這一點,以顯示HTML的jQuery的超鏈接的onclick特定的div,我曾嘗試下面的代碼,並沒有得到解答,jQuery的:酥料餅onclick事件

$(function() { 
    var moveLeft = 20; 
    var moveDown = 10; 

    $('a#trigger').click(function(e) { 
     $('div#pop-up').show() 
      .css('top', e.pageY + moveDown) 
      .css('left', e.pageX + moveLeft) 
      .appendTo('body'); 
     }, function() { 
      $('div#pop-up').hide(); 
    }); 
    $('a#trigger').mousemove(function(e) { 
     $("div#pop-up").css('top', e.pageY + moveDown).css('left', e.pageX + moveLeft); 
    }); 
}); 

這裏我有嘗試hover()方法,而不是click()方法,它的工作當我把click()它不會,但我需要click()方法工作,我如何實現它?請幫助...

回答

2

,因爲不像懸停(),點擊()方法僅支持單處理器。
看到這個:http://api.jquery.com/click/

所以你的情況,請注意代碼片段:

   $('a#trigger').click(function(e) { 
        $('div#pop-up').show() 
        .css('top', e.pageY + moveDown) 
        .css('left', e.pageX + moveLeft) 
        .appendTo('body'); 
       }, function() { 
        $('div#pop-up').hide(); 
       }); 

第一個功能,您打算在點擊執行,實際上是被作爲毫無意義的事件傳遞數據每次你點擊一個#觸發器,這是正在執行的第二個函數。

你可以交替這樣的代碼是:

var triggerState = 0; 
$('a#trigger').click(function(e) { 
    if (triggerState === 0) { 
     $('div#pop-up').show() 
     .css('top', e.pageY + moveDown) 
     .css('left', e.pageX + moveLeft) 
     .appendTo('body'); 
     triggerState = 1; 
    } 
    else if (triggerState === 1) { 
     $('div#pop-up').hide(); 
     triggerState = 0; 
    } 
}); 

我想你做出以爲點擊,像盤旋的錯誤,接受了不同狀態的兩個功能 - 不幸的是沒有 - 鼠標懸停和鼠標移開是明確的狀態可跟蹤,但是,「交替點擊」不是明確的可跟蹤狀態,因此jQuery點擊不提供此功能。

+0

感謝它的工作.... – 2013-03-11 10:08:02

0

試試這個:

$(function() { 
    var moveLeft = 20; 
    var moveDown = 10; 

    $('a#trigger').click(function(e) { 

     if($('div#pop-up').length) 
     { 
      $('div#pop-up').toggle(); 
     } 
     else 
     { 
      $('div#pop-up') 
       .css({'top': e.pageY + moveDown,'left': e.pageX + moveLeft}) 
       .appendTo('body').show(); 
     } 
    }); 

    $('a#trigger').mousemove(function(e) { 
     $("div#pop-up").css({'top': e.pageY + moveDown,'left': e.pageX + moveLeft}); 
    }); 
}); 
+0

沒有找到合適的人 – 2013-03-11 09:58:09

+0

檢查'div#彈出'是否在'body'中創建?或者嘗試上面的答案,我改變了 – 2013-03-11 09:59:46

+0

它存在,我已經檢查了這個懸停()功能。 – 2013-03-11 10:04:33