2010-04-11 29 views
1

我注意到它可以設置一個jQuery UI滑塊的值以下列方式:如何以編程方式設置jQuery UI切換?

$("#mySlider").slider("value", 42); 

這將觸發安裝在滑塊的事件處理程序如預期。

現在我試圖用按鈕(切換)做同樣的技巧。在API中似乎沒有這樣做的好方法。我可能會錯過簡單的東西。

我試過沒有結果如下:

$("#myButton").button().click(); 

任何想法如何處理,在這種情況下,歡迎選購。請注意,找到適用於按鈕集的解決方案也是非常棒的。

編輯

請注意,我需要這個特定的功能來模擬用戶。下面是一些代碼來說明問題更好:

function toggleBrushValue(hotkey, attributeName) { 
    shortcut.add(hotkey, function(e) { 
     //XXX: the missing part 
     $("#" + attributeName).<something?>; 
    }); 
} 

function increaseBrushValue(hotkey, attributeName) { 
    shortcut.add(hotkey, function(e) { 
     var currentSize = $("#" + attributeName).slider("value"); 

     $("#" + attributeName).slider("value", currentSize + 1); 
    }); 
} 

回答

1

這花了一段時間,但最終我找到了解決問題的方法。 :)這裏是我的解決方案:

var $toggle = $("#" + attributeName); 

$toggle.attr("checked", !$toggle.attr("checked")).button("refresh"); 

在jQuery UI切換獲得通過「檢查」他們的初始值,我決定用它來我的優勢。 「刷新」確保其視覺狀態也得到更新。

1

嘗試使用.toggle(),如下所示:

$("#myButton").toggle(
    function() { 
     $("#mySlider").slider("value", 42); 
    }, 
    function() { 
     // something else... 
    } 
); 

它將在工作按鈕設置過,因爲你提供了正確的選擇。例如:

<input id="myButton" ...> 
<input id="myButton" ...> 
<input id="myButton" ...> 

$('#myButton').toggle()將爲每個上述元素執行。此外,如果您需要與功能本身內的按鈕進行交互,請使用this$(this)。例如:

$("#myButton").toggle(
    function() { 
     alert($(this).attr('id')); 
    }, 
    function() { 
     alert($(this).attr('name')); 
    } 
); 
+0

滑塊示例的想法是爲了說明預期的API以及需要調用附加到該元素的所有處理程序。我需要通過快捷方式修改切換的狀態。我將編輯問題以突出顯示。 – 2010-04-11 17:07:28

+0

您可以繼續使用切換按鈕,並通過調用'$(「#myButton」)。trigger('click')'來觸發其單擊事件。 – jweyrich 2010-04-14 17:32:31

相關問題