2015-07-20 46 views
1

我有一個元素的網頁,當鼠標懸停在元素上時,文本出現在元素內部。 我想要生成「鼠標懸停」/「鼠標」顯示文本,即使沒有鼠標實際懸停在元素上。 代碼,例如:jQuery在沒有實際鼠標輸入元素的情況下觸發mouseenter元素

HTML

<div> 
    <span id="hover_to_show_text">Hover here to show hidden text</span> 
    <span id="hidden_text" style="display:none">Hidden text</span> 
</div>  

JS

$("#hover_to_show_text").mouseenter(function() { 
    $(#hidden_text).show(); 
}); 
$("#hover_to_show_text").mouseleave(function() { 
    $(#hidden_text).hide(); 
}); 

我想產生 「的mouseenter」 這會觸發「$( 「#hover_to_show_text」).mouseenter (函數(){「在jQuery中,並在那裏離開」mouseenter「達N秒。我試過(分開):

$("#hover_to_show_text").hover(); 
$("#hover_to_show_text").trigger('mouseover'); 
$("#hover_to_show_text").trigger('mouseenter'); 

沒有工作。有沒有辦法做到這一點?

謝謝。

+0

不知道我完全理解你的問題。但在你的代碼放在jsfiddle後,它似乎觸發mouseover和mouseenter成功http://jsfiddle.net/p694huuk/ – EmileKumfa

+0

我不認爲你正在做對了你的代碼運行良好....你確定你有jQuery在你的項目 – code

+0

在上面的代碼中有錯別字。和'$(「#hover_to_show_text」)。trigger(「mouseenter」);'應該工作。 – epascarello

回答

3

應該工作。事件幾乎立即觸發。所以你可能沒有看到差異。

setTimeout之內處理mouseleave的扭曲以查看區別。

$("#hover_to_show_text").mouseenter(function() { 
    $('#hidden_text').show(); 
}); 
$("#hover_to_show_text").mouseleave(function() { 
    $('#hidden_text').hide(); 
}); 

$("#hover_to_show_text").trigger('mouseover'); 

setTimeout(function() { 
    $("#hover_to_show_text").trigger('mouseleave'); 
}, 1500); 

Check Fiddle

更新

// Just triggering the click event will not work if no 
// click handler is provided. 
// So create one first 
$("#btn").on('click', function() { 

    // trigger the mouse enter event 
    $("#hover_to_show_text").trigger('mouseenter'); 

    setTimeout(function() { 
     $("#hover_to_show_text").trigger('mouseleave'); 
    }, 1500); 

}); 

Update Fiddle

+0

它會從第三個元素工作嗎? – BenB

+0

@batz你是什麼意思的第三個元素。 –

+0

我的意思是一個otherr按鈕會觸發它。像這樣:http://jsfiddle.net/Loof31rq/1/ – BenB

相關問題