如何获取触发更改事件的 Bootstrap 滑块的父级
How to get the parent of the Bootstrap slider which triggers the change event
我有两个 Bootstrap 滑块,已初始化并准备就绪。我已将更改事件附加到它们,但我无法获取正在更改的滑块,因为更改事件为我提供了一个包含 newValue 和 oldValue 的对象。 我需要获取 event.target 来找到触发更改事件的滑块的父项。
这是我目前的代码:
HTML 灯具
<div class="container-fluid">
<div class="slider-container">
<span id="slide-label">Example slider label</span>
<input class="slide" id="slide_1" type="text" />
</div>
</div>
<div class="container-fluid">
<div class="slider-container">
<span id="slide-label">Example slider label</span>
<input class="slide" id="slide_2" type="text" />
</div>
</div>
JS
let slide_arr = [
{
id: 'slide_1',
min: 1,
max: 4,
step: 1,
value: 1,
tooltip: "hide",
ticks: [1, 2, 3, 4],
ticks_labels: ["item a", "item b", "item c", "item d"]
},
{
id: 'slide_2',
min: 1,
max: 4,
step: 1,
value: 1,
tooltip: "hide",
ticks: [1, 2, 3, 4],
ticks_labels: ["item 1", "item 2", "item 3", "item 4"]
}];
let slider_instance = [];
for (let index = 0; index < slide_arr.length; index++) {
const slide_obj = slide_arr[index];
slider_instance[index] = new Slider(`#${slide_obj.id}`, slide_obj);
}
for (let index = 0; index < slider_instance.length; index++) {
const slider = slider_instance[index];
slider.on('slideStart', function (e) {
console.log('slideStart')
console.log(e);
});
slider.on('slideStop', function (e) {
console.log('slideStop')
console.log(e);
});
slider.on('change', function (e) {
console.log('change')
console.log(e);
});
slider.on('slide', function (e) {
console.log('slide')
console.log(e);
});
}
我尝试了很多活动,none 很有帮助。
我做了this Fiddle来演示问题。
要获得您正在更改的目标,您可以在您的情况下使用 slider.$element
和 slider.$sliderElem
。
slider.on('change', function(e) {
// I think this is what you actually want (#slide_1 or #slide_2)
console.log(slider.$element)
console.log(slider.$sliderElem) // This is the horizontal slider
});
这是一个jsfiddle
我有两个 Bootstrap 滑块,已初始化并准备就绪。我已将更改事件附加到它们,但我无法获取正在更改的滑块,因为更改事件为我提供了一个包含 newValue 和 oldValue 的对象。 我需要获取 event.target 来找到触发更改事件的滑块的父项。
这是我目前的代码:
HTML 灯具
<div class="container-fluid">
<div class="slider-container">
<span id="slide-label">Example slider label</span>
<input class="slide" id="slide_1" type="text" />
</div>
</div>
<div class="container-fluid">
<div class="slider-container">
<span id="slide-label">Example slider label</span>
<input class="slide" id="slide_2" type="text" />
</div>
</div>
JS
let slide_arr = [
{
id: 'slide_1',
min: 1,
max: 4,
step: 1,
value: 1,
tooltip: "hide",
ticks: [1, 2, 3, 4],
ticks_labels: ["item a", "item b", "item c", "item d"]
},
{
id: 'slide_2',
min: 1,
max: 4,
step: 1,
value: 1,
tooltip: "hide",
ticks: [1, 2, 3, 4],
ticks_labels: ["item 1", "item 2", "item 3", "item 4"]
}];
let slider_instance = [];
for (let index = 0; index < slide_arr.length; index++) {
const slide_obj = slide_arr[index];
slider_instance[index] = new Slider(`#${slide_obj.id}`, slide_obj);
}
for (let index = 0; index < slider_instance.length; index++) {
const slider = slider_instance[index];
slider.on('slideStart', function (e) {
console.log('slideStart')
console.log(e);
});
slider.on('slideStop', function (e) {
console.log('slideStop')
console.log(e);
});
slider.on('change', function (e) {
console.log('change')
console.log(e);
});
slider.on('slide', function (e) {
console.log('slide')
console.log(e);
});
}
我尝试了很多活动,none 很有帮助。
我做了this Fiddle来演示问题。
要获得您正在更改的目标,您可以在您的情况下使用 slider.$element
和 slider.$sliderElem
。
slider.on('change', function(e) {
// I think this is what you actually want (#slide_1 or #slide_2)
console.log(slider.$element)
console.log(slider.$sliderElem) // This is the horizontal slider
});
这是一个jsfiddle