Reputation: 53
Is it possible to disable mouse clicks, than re-enable mouse clicks for a jQuery UI slider?
jQuery Examples doen't seem to function
Code examples
Initialize a slider with the disabled option specified.
$( ".selector" ).slider({ disabled: true });
Get or set the disabled option, after init.
//getter
var disabled = $( ".selector" ).slider( "option", "disabled" );
//setter
$( ".selector" ).slider( "option", "disabled", true );
Edit 1
Heres is the trigger for unhiding the hidden check boxes....Once clicked it should disable mouse clicks on the slider and allow the checkboxes to take over.
$pageHelpYes.click(function () {
$pageHelpHidden.animate({
'height': '650px'
}, 1000);
$pageHelpYes.attr('disabled', 'disabled');
$("#R_C-designPrice2, #R_C-designPrice, #R_C-designAdded").addClass('R_C-added');
$pageHelpNo.removeAttr('disabled');
$("#designHidden").val('Yes');
var checkedCount = $(":checkbox:checked").length;
var s = $pageSlider,
val = s.slider("value", checkedCount),
step = s.slider("option", "step");
s.slider("value", checkedCount);
$pages.val(("value", checkedCount));
$amount.val([("value", checkedCount) * pageAmount] / [$daySlider.slider("value")]);
//Slider Mouse Disable Code below.....
var kill = $("pagesSlider").slider("option", "disabled");
$("pageSlider").slider( "option", "disabled", true );
$slideCalc.click();
Heres the Slider Code.
$pageSlider.slider({
disabled: false,
animate: true,
range: "min",
value: 5,
min: 1,
max: 25,
step: 1,
slide: function (event, ui) {
$pages.val(ui.value);
$slideCalc.click();
}
});
Here's the code which hides the checkboxes and should reactivate the slider mouse clicks.
$pageHelpNo.click(function () {
$pageHelpHidden.animate({
'height': '0px'
}, 1000);
$("#R_C-designPrice2, #R_C-designPrice, #R_C-designAdded").removeClass('R_C-added');
$pageHelpYes.removeAttr('disabled');
$pageHelpNo.attr('disabled', 'disabled');
$("#designHidden").val('No');
//Slider Re-activate Code below.....
var kill = $("pagesSlider").slider("option", "disabled");
$("pageSlider").slider( "option", "disabled", false );
});
Upvotes: 2
Views: 5034
Reputation: 24276
You've defined the slider variable as:
$pageSlider.slider({
//...
});
Then you called the disable method as:
$("pageSlider").slider( "option", "disabled", true );
So the problem is that you used a selector for a tag named "pageSlider", which I'm very sure that it will never exists. You have to use your slider variable.
Try to disable the slider like this:
$pageSlider.slider( "option", "disabled", true );
Upvotes: 3