jQuery Slider ID в слайд-событии? - PullRequest
1 голос
/ 04 октября 2011

Я использую несколько ползунков jquery и хочу иметь возможность использовать одну функцию для события Slide. Я не могу понять, как получить идентификатор слайдера, который вызывает событие Slide.

Вот как выглядит мой код http://jsfiddle.net/89dxM/8/.

Внутри функции SliderDisplay () мне нужно найти, какой слайдер вызывает функцию, чтобы я мог соответствующим образом обновить текст. Это возможно?

Спасибо, Susan

Ответы [ 2 ]

2 голосов
/ 04 октября 2011

Функция обратного вызова вызывается из контекста используемого ползунка, поэтому вы можете использовать переменную this для доступа к ее идентификатору:

var id = $(this).attr("id");

В вашем связанном тестовом коде используйте следующее:

function SliderDisplay(event, ui) {
    $("#price-Powergarage").val($(this).attr("id"));
}

Чтобы завершить пример приложения, добавьте дополнительный атрибут к каждому элементу div слайдера следующим образом:

Html

<label for="price-Powergarage">Garage Spaces:</label>
<input type="text" id="price-Powergarage"/>
<div id="slider-Powergarage" rel="#price-Powergarage"></div>

<label for="price-Powerdoor">Garage Doors:</label>
<input type="text" id="price-Powerdoor"/>
<div id="slider-Powerdoor" rel="#price-Powerdoor"></div>

Javascript

$("#slider-Powergarage").slider({
    range: true,
    min: 1,
    max: 10,
    values: [1, 10],
    step: 1,
    slide: SliderDisplay
});


$("#slider-Powerdoor").slider({
    range: true,
    min: 1,
    max: 10,
    values: [1, 10],
    step: 1,
    slide: SliderDisplay
});

function SliderDisplay(event, ui) {
    $($(this).attr("rel")).val("$" + ui.values[0] + " - $" + ui.values[1]);
}
0 голосов
/ 04 октября 2011

Вы можете найти ввод по идентификатору:

function SliderDisplay(event, ui) {
        var id = '#' + event.target.id.replace('slider','price');
        $(id).val("$" + ui.values[0] + " - $" + ui.values[1]);
    }
...