当值通过另一个脚本更改时,.change不起作用

时间:2010-07-21 16:07:49

标签: jquery jquery-ui jquery-plugins uislider

我有一个选择标签

<select name="valueAA" id="valueAA">

我使用UI Slider,我需要在select标签的更改上编写一个函数,但是当它通过滑块更改时,我的函数不起作用。

$("#valueAA").change(function()
        {
            alert("works");// doesn't work
        })

我可以在不改变ui slider脚本的情况下避免这种行为吗?这种行为的解释是什么?

由于

更新

脚本看起来像这样

    $(function(){
                $('select#valueAA, select#valueBB').selectToUISlider({
                    labels:6

                });
     });

我必须把这个脚本放在哪里? (我尝试了很多变种:))

$( ".selector" ).bind( "slidechange", function(event, ui) {
  ...
});

3 个答案:

答案 0 :(得分:2)

从我所看到的,UI Slider写在jQuery UI's slider之上。 jQuery UI滑块包含可以使用的事件,开始幻灯片更改停止。使用文档中的示例,您可以尝试:

// Bind to the change event by type: slidechange.  
$("#valueAA").bind( "slidechange", function(event, ui) {
  $(this).change();
});

或者,使用您更新的示例,在滑块的选项中提供回调:

$(function(){
            $('select#valueAA, select#valueBB').selectToUISlider({
                labels:6,
                change: function (event, ui) { $(this).change(); }
            });
 });

答案 1 :(得分:2)

我挣扎了一段时间,但找到了答案:

$('.slider').selectToUISlider({ 
    sliderOptions: { 
        change:function() { 
            alert("works");
        } 
    } 
});

答案 2 :(得分:0)

正在通过控件本身更改选择,因此更改事件不会被触发。您应该尝试在ui滑块上绑定change事件,并使用以下代码在select上触发change事件。

$("#valueAA").trigger("change");