簡體   English   中英

為什么我的ASP.NET jQuery Rad Radlider箭頭單擊事件無法觸發?

[英]Why is my ASP.NET jQuery RadSlider arrow click event not firing?

我正在使用帶有jQuery 1.10.2的Telerik RadSlider。 目前,我正在捕獲2個事件:

  1. OnClientValueChanged:單擊上/下箭頭手柄或拖動滑塊正在移動時觸發。
  2. OnClientSlideEnd:在拖動滑塊完成移動時觸發(但在單擊箭頭手柄時不觸發)。

我的問題是如何僅單擊向上/向下箭頭手柄時才能檢測到? 顯然,我可以掛接到OnClientValueChanged(上面的第一個事件)並調用連接到OnClientSlideEnd的函數(第二個事件),但是由於我每次都在進行計算並將值保存到數據庫中,因此觸發OnClientSlideEnd的過程非常令人難以置信每次拖動滑塊手柄時都無法有效地進行計算並保存這些值。

這是我當前的RadSlider設置。 請注意,句柄是動態生成的,但是在檢查Chrome中的元素時,它具有“ rslHandle”類:

 $(document).ready(function myfunction() { $('.rslHandle, .rslHorizontal, .RadSlider').live('click', 'body', function () { alert('arrow clicked'); }); }); 
 <telerik:RadSlider ID="radSliderTest" runat="server" CssClass="CustomSliderLook" OnClientValueChanged="OnClientSlideChanged" OnClientSlideEnd="OnClientSlideEnd" MaximumValue="100" TrackMouseWheel="true" Width="300px" /> 

我已經嘗試過時的“實時單擊”,“單擊”,只是普通的“單擊”方法而沒有觸發。 瀏覽Telerik的文檔以了解RadSlider上的事件,除了這里發布的內容之外,我沒有找到其他有關箭頭更改事件的信息 非常感謝您的幫助!

好的,我找到了解決方案。 它通過捕獲mouseup事件來工作,如下所示:

 $(".rslHandle").live('mouseup', function (e) { alert('arrow clicked'); }); 

我只是嘗試了將click()jQuery附加到click事件的方法:

    function pageLoad() {
        $telerik.$(".rslHandle").click(function () { alert(1); });
    }

它使用Sys.Application.Load(像這樣的IScriptControls首選)。

要么

    $telerik.$(document).ready(function () {
        $telerik.$(".rslHandle").click(function () { alert(1); });
    });

在document.ready jQuery事件中附加了匿名函數的位置。

兩者都使用jQuery Telerik提供。

您可以層疊選擇器和/或使用滑塊本身的OnClientLoad事件,以便可以知道創建滑塊的HTML元素是哪個。

但是,我不確定為什么不能使用內置事件。 如果您需要最終值,無論最終用戶更改了多少次,為什么不簡單地在服務器上使用radSliderTest.SelectedValue屬性呢? 最終,頁面將被POST編輯,因此您可以獲取其余的文本框,下拉列表等,因此您可以利用這一刻來獲取服務器上的滑塊值,而無需任何其他代碼。 滑塊還提供AutoPostBack屬性,因此,當用戶更改值時,它可以發布頁面並觸發OnValueChanged服務器事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM