【发布时间】:2014-10-13 17:14:36
【问题描述】:
我是 Jquery 的新手,必须在一页中显示多个 JQuery 滑块。
每次结果来自 MySQL 请求时,我都必须显示一个滑块。
我可以显示一个滑块,但不能显示多个滑块,因为我无法在 javascript 中更改 ID 的名称。
我也无法多次调用此函数...请帮助。
HTML 页面:
<?php
$reponse = $bdd->prepare('SELECT id FROM TABLE WHERE deleted = 0 ');
$reponse->execute();
$slider = array();
$i = 0;
while ($data = $reponse->fetch()) {
$slider[$i] = $data['id'];
$i ++; ?>
<div id="<?php echo "slider" . $data['id']; ?>"> </div>
<input type="text" id="<?php echo "amount" . $data['id']; ?>"> <?php
} ?>
Javascript 页面:
$(function() {
var name = "#slider1";
$( name ).slider({
value:100,
min: 5,
max: 300,
step: 5,
slide: function( event, ui ) {
$( "#amount" ).val( ui.value);
}
});
$( "#amount" ).val( $( name ).slider( "value" ));
});
//编辑
滑块与所有元素的类连接,但我无法将滑块的正确值放入amount。
我有几个选项来获取当前滑块移动的 ID,但它们都不起作用:
$(function() {
$( ".slider" ).slider({
value:100,
min: 5,
max: 300,
step: 5,
slide: function( event, ui ) {
// check the event and ui variables to see what the exact reference you
// your element is but it looks like it's ui.handle
// console.log(ui);
// console.log(ui.handle);
var clicked_element = ui.handle.data('id');
$( "#amount" + clicked_element ).val( ui.value);
}
});
$( "#amount3" ).val( $( ".slider" ).slider( "value" ));
});
【问题讨论】:
-
ui.handle.data('id')的价值能给你带来什么?请注意,您的代码的最后一行将不起作用,您需要遍历所有.slider元素并将正确的值放入正确的#amount框中。 -
undefined is not a function,这是我唯一能看到的。我知道最后一行。循环有效,但试图获取此循环中的最后一个 ID -
console.log(ui.handle);的结果是什么?你有在线测试页面吗? -
我每次在滑动条上移动一毫米时都会看到这条线:
<span class="ui-slider-handle ui-state-default ui-corner-all" tabindex="0" style="left: 33.8983050847458%;"></span>
标签: javascript php jquery