我正在開發一個ASP.NET Web應用程序,這個應用程序需要在控制器上創建一個彈出窗口。我正在使用「OnMouseOver」事件並按預期工作。問題在於該事件是在「頭髮觸發」上;即使鼠標在控件上的隨意通道也會彈出(然後必須手動解除)。我想添加一個延遲,以便快速傳遞相關控件不會觸發事件。有沒有辦法設置這樣的延遲,或者是否有其他事件可以用來獲得相同的「緩慢翻轉時的觸發事件」?浮現在腦海我可以在瀏覽器引發「滾動」事件之前指定延遲嗎?
0
A
回答
3
一個解決辦法,可能有更好的辦法,但:
- 通過
setTimeout
延遲 - 在函數內部充分利用
onmouseover
通話功能,檢查鼠標實際上是在該元素。
你也可以使用一個onmouseout
清除setTimeout
,但你不得不對計時器的引用存儲在一個全局變量以再次獲得。
0
我最終什麼事做如下(oRow是一個錶行,但它可以是任何控制):
function ItemMouseOver(oRow, "parameters for the popup")
{
oRow.showTimer = window.setTimeout(function()
{
alert('popup');
}, 1000);
}
function ItemMouseOut(oRow)
{
if (oRow.showTimer)
window.clearTimeout(oRow.showTimer);
在ASP.NET網格視圖RowDataBound事件:我添加以下代碼:
protected void ReportGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && (
e.Row.RowState == DataControlRowState.Normal
|| e.Row.RowState == DataControlRowState.Alternate))
{
// get the input values for the popup for the row (stuff deleted)
e.Row.Attributes["onmouseover"] = "javascript:ItemMouseOver(this,
"parameters for the popup");";
e.Row.Attributes["onmouseout"] = "javascript:ItemMouseOut(this);";
}
}
它工作得很好。謝謝。
相關問題
- 1. 我可以延遲window.open()嗎?
- 2. 角度,在瀏覽器刷新之前可以觸發哪個事件
- 3. 瀏覽器特定的延遲時間
- 4. 對IE瀏覽器的滾動延遲效果變慢11
- 5. 可以在addClass()之前放置延遲(500)嗎?
- 6. 我可以檢測瀏覽器調整大小事件嗎?
- 7. jQuery fadeTo在Webkit瀏覽器中延遲
- 8. 添加可延遲事件的延遲
- 9. 指定時間的mootool事件延遲
- 10. 各個HTTP GET文件請求之間的瀏覽器延遲
- 11. 我可以在瀏覽器之外運行Google的Native Client嗎?
- 12. 在用戶舉起手指之前,可以輕掃事件嗎?
- 13. 我可以在瀏覽器呈現Flash數據之前訪問Flash數據嗎?
- 14. 在javascript中回發之前的延遲
- 15. 我可以在Keen.io上看到或瀏覽raw segment.com事件嗎?
- 16. 瀏覽器控件不可滾動
- 17. 我可以延遲jQuery addClass嗎?
- 18. 我可以將HTML綁定到WPF Web瀏覽器控件嗎?
- 19. 使用默認瀏覽器滾動條觸發Flash事件
- 20. 我如何可以延遲加載縮略圖圖像以垂直滾動瀏覽頁面?
- 21. 可以使用瀏覽器滾動條代替iframe滾動條嗎?
- 22. 可以一個大的div不觸發瀏覽器滾動條?
- 23. Internet Explorer發現瀏覽器的位置發生了延遲
- 24. 我可以獲取將在過濾器之前觸發的當前動作嗎?
- 25. JavaScript事件處理滾動事件與延遲
- 26. DataGrid延遲滾動
- 27. 在創建對象之前,我可以添加事件嗎?
- 28. 我如何可以使用標準的瀏覽器滾動條
- 29. 在keyReleased()事件後引入延遲
- 30. jQuery可以聽取瀏覽器事件嗎?