We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

executing a function with jquery UI slider component

Medium Priority
619 Views
Last Modified: 2012-05-07
Hi there,

I am new to jquery and have a basic understanding of its benifits i am trying to add its functionality to my existing site.  I have managed to get this jquery UI slider component plugin working - http://www.filamentgroup.com/lab/update_jquery_ui_slider_from_a_select_element_now_with_aria_support/

I would like the slider to perform a javascript function everytime it changes. With the basic example

<select name="speed" id="speed">
  <option value="Slower">Slower</option>
  <option value="Slow">Slow</option>
  <option value="Med" selected="selected">Med</option>
  <option value="Fast">Fast</option>
  <option value="Faster">Faster</option>
</select>

I would normally add onchange to the select inorder to perform the function when a different value is selected, however with the jquery ui component this does not work. How should I approach this?
Comment
Watch Question

Shahzad Fateh AliHead Of Engineering - Dawaai.pk
CERTIFIED EXPERT

Commented:
Referring to

http://jqueryui.com/demos/slider/
and
http://www.filamentgroup.com/lab/update_jquery_ui_slider_from_a_select_element_now_with_aria_support/

you can use all native options as 'sliderOptions'

see my code

$('select#valueAA, select#valueBB').selectToUISlider({
				labels: 12,
				// HERE WE GO
                                 sliderOptions:{
					change:function(){
						alert('Hello World');
					}
				}
			});

Open in new window

Author

Commented:
thank you for responding. I have tried:

                  $(function(){
                  $('#posted').selectToUISlider();            
                                // HERE WE GO
                                             sliderOptions:{
                                        change:function(){
                                                alert('Hello World');
                                        }
                                }


            });

But this just gets rid of the slider all together.
Shahzad Fateh AliHead Of Engineering - Dawaai.pk
CERTIFIED EXPERT

Commented:
post your html and i will do required modifications

Author

Commented:
ok thanks!

<script type="text/javascript">

                  $(function(){
                  $('#posted').selectToUISlider();            
                                // HERE WE GO
                                             sliderOptions:{
                                        change:function(){
                                                alert('Hello World');
                                        }
                                }


            });

      </script>

<p>posted<p>
<select name="posted" id="posted" onchange="paging('1', '','','1', '', this.value, '', '')">
  <option value="" selected="selected">All</option>
  <option value="1246533034"> Less than 24 Hours ago</option>

  <option value="1246446634" >Less than 2 days ago</option>
  <option value="1246360234">Less than 3 days ago</option>
  <option value="1246273834">Less than 4 days ago</option>
  <option value="1246187434">Less than 5 days ago</option>
  <option value="1246101034">Less than 6 days ago</option>
  <option value="1246014634">Less than 7 days ago</option>

  <option value="1245409834">Less than 2 weeks ago</option>
</select>
<p>
Head Of Engineering - Dawaai.pk
CERTIFIED EXPERT
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Author

Commented:
hmm, the function still isn't working when the slider is changed. I have changed the function to alert('Hello World'); and it still doesn't work. This is really frustrating.


<script type="text/javascript"> 
 
                  $(function(){
                  $('#posted').selectToUISlider();            
                                // HERE WE GO
                                             sliderOptions:{
                                        change:function(event,ui){
                                                alert('Hello World');                                        }
                                }
 
            });
 
      </script> 
 
 
 
 
<p>posted<p> 
<select name="posted" id="posted"> 
  <option value="" selected="selected">All</option> 
  <option value="1246537227"> Less than 24 Hours ago</option> 
  <option value="1246450827" >Less than 2 days ago</option> 
  <option value="1246364427">Less than 3 days ago</option> 
  <option value="1246278027">Less than 4 days ago</option> 
  <option value="1246191627">Less than 5 days ago</option> 
  <option value="1246105227">Less than 6 days ago</option> 
  <option value="1246018827">Less than 7 days ago</option> 
  <option value="1245414027">Less than 2 weeks ago</option> 
</select> 

Open in new window

Shahzad Fateh AliHead Of Engineering - Dawaai.pk
CERTIFIED EXPERT

Commented:
change works when the value in slider changes and it will frustrate if you use alter. do something else with this event 'change'

Author

Commented:
im sorry im not sure i follow you

Author

Commented:
any ideas?

Author

Commented:
can anyone show me an example of this jquery plugin with a function being called everytime there is a change in the slider

Author

Commented:
ok im finally getting somewhere, this code works fine apart from the ui.value seems to output the option number rather than the actual VALUE of the select box. For example in this:

<select name="posted" id="posted">
  <option value="2342342">hello</option>
  <option value="435435" >goodbye</option>
</select>

if goodbye was selected then ui.value = 2 where as i want it to be 435435.
<script type="text/javascript">
 $(function(){
 
$('#posted').selectToUISlider({
labels: 0,
sliderOptions: {
change:function(e, ui) {
paging('1', '','','1', '',ui.value , '', '');
}
}
}); 
}); 
 
 
      </script>
 
 
 
<p>posted<p>
 
 
<select name="posted" id="posted">
  <option value="" selected="selected">All</option>
 
  <option value="1246613721"> Less than 24 Hours ago</option>
  <option value="1246527321" >Less than 2 days ago</option>
  <option value="1246440921">Less than 3 days ago</option>
  <option value="1246354521">Less than 4 days ago</option>
  <option value="1246268121">Less than 5 days ago</option>
  <option value="1246181721">Less than 6 days ago</option>
 
  <option value="1246095321">Less than 7 days ago</option>
  <option value="1245490521">Less than 2 weeks ago</option>
</select>

Open in new window

Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.