2012-10-08 230 views
0

需要幫助我有一個跨度在我的網頁一次。我已經使用了懸停功能顯示在鼠標懸停彈出和自動隱藏彈出一次鼠標移開。我的代碼在下面,它工作正常。在jQuery的懸停功能

我需要的是,如果我在跨度彈出應凍結且僅當我關閉彈出它必須關閉點擊。但懸停也應該起作用。我同時需要懸停,點擊功能可以同時工作..

我懸停代碼:

$('td#' + parentElement).find('span.likes').hover(function (e) { 
    topPos = e.pageY - ($('div#pop-up').height()) - 35; 
    leftPos = e.pageX - ($('div#pop-up').width()) - 30; 
    if (leftPos < 0) { 
     leftPos = 10; 
    } 
    GetLikesList(json_row.value.task_id); 
    $('div#pop-up').show().css('top', topPos).css('left', leftPos).appendTo('body'); 
    $('#mopopuptitle').html('People who liked this Request'); 
}, function() { 
    $('div#pop-up').hide(); 
}); 

我的點擊代碼:

$('#' + parentElement).find('span.likes').click(function (e) { 
    topPos = e.pageY - ($('div#pop-up').height()) - 35; 
    leftPos = e.pageX - ($('div#pop-up').width()) - 30; 
    if (leftPos < 0) { 
     leftPos = 10; 
    } 
    GetLikesList(json_row.value.task_id); 
    $('div#pop-up').show().css('top', topPos).css('left', leftPos).appendTo('body'); 
    $('#mopopuptitle').html('People who liked this Request'); 
    e.stopPropagation(); 
}) 

如何整合兩者???

回答

1

您可以使用.on()綁定多個事件:

$('#' + parentElement).find('span.likes').on('mouseenter click', function(e) { 
    topPos = e.pageY - ($('div#pop-up').height()) - 35; 
    leftPos = e.pageX - ($('div#pop-up').width()) - 30; 

    if (leftPos < 0) { 
     leftPos = 10; 
    } 

    GetLikesList(json_row.value.task_id); 

    $('div#pop-up').show().css({ 
     top: topPos, 
     left: leftPos 
    }).appendTo('body'); 

    $('#mopopuptitle').html('People who liked this Request'); 
}).on('mouseleave', function() { 
    $('div#pop-up').hide(); 
}); 

雖然我沒有看到這兩個結合,除非你想運行兩次處理多大用處。點擊元素,鼠標必須懸停在它上面。

+0

其實我需要的是在鼠標懸停時彈出應顯示,一旦我點擊了相同的彈出應該凍結。它不應該被隱藏。如果我沒有點擊它sholud隱藏鼠標離開.. 我怎麼能實現? – Xavier