javascript - 如何在页面中多次使用星级(输入)字段

标签 javascript jquery

我是 jquery 的新手。我想在具有相同 ID 的页面中多次使用此星级(输入)字段(因为它将动态显示)。请让我知道我是怎么做到的。

Jsfiddle:http://jsfiddle.net/9xrkr/

<script src="http://www.radioactivethinking.com/rateit/src/jquery.rateit.js"></script>
<input type="range" min="0" max="5" value="0" step="1" id="backing1">   
<div class="rateit" id="rateitHover" data-rateit-backingfld="#backing1" data-rateit-step="1" > 
    <span class="tooltip" style="float:right; padding-left:10px;"></span>
</div>

<script>

var tooltipvalues = ['Bad', 'Poor', 'Average', 'Good', 'Excellent'];
var valueToDisplay

$("#rateitHover").bind('over', function (event, value) {
    $('.tooltip').text(tooltipvalues[value - 1]);
});

$("#rateitHover").bind('reset', function () {
    $('.tooltip').text(''); 
    $('#rateitHover').rateit('value')
});

$("#rateitHover").bind('rated', function (event, value) {
    $('.tooltip').text('R: ' + tooltipvalues[value - 1]);
});

$('#rateitHover').bind('mouseleave', function() {
    var v = $('#rateitHover').rateit('value');
    if (v == 0) {
        $('.tooltip').html('');
    } else {
        $('.tooltip').html('R: ' + tooltipvalues[v - 1]);
    }
});


</script>

最佳答案

必须使用类(不是元素的唯一id)

试试这个:

HTML

<input type="range" min="0" max="5" value="0" step="1" id="backing1">
<input type="range" min="0" max="5" value="0" step="1" id="backing2">

<div class="rateit" id="rateitHover1" data-rateit-backingfld="#backing1" data-rateit-step="1" > 
    <span class="tooltip" style="float:right; padding-left:10px;"></span>
</div>

<div class="rateit" id="rateitHover2" data-rateit-backingfld="#backing2" data-rateit-step="1" > 
    <span class="tooltip" style="float:right; padding-left:10px;"></span>
</div>

JavaScript

var tooltipvalues = ['Bad', 'Poor', 'Average', 'Good', 'Excellent'];
var valueToDisplay

$(".rateit").bind('over', function (event, value) {
    $(this).find('.tooltip').text(tooltipvalues[value - 1]);
});

$(".rateit").bind('reset', function () {
    $(this).find('.tooltip').text(''); 
    $(this).rateit('value')
});

$(".rateit").bind('rated', function (event, value) {
    $(this).find('.tooltip').text('R: ' + tooltipvalues[value - 1]);
});

$('.rateit').bind('mouseleave', function() {
    var v = $(this).rateit('value');
    if (v == 0) {
        $(this).find('.tooltip').html('');
    } else {
        $(this).find('.tooltip').html('R: ' + tooltipvalues[v - 1]);
    }
});

fiddle http://jsfiddle.net/9xrkr/1/

关于javascript - 如何在页面中多次使用星级(输入)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19088436/

相关文章:

javascript - 在 Highchart 上将 X 轴显示为 DD/MM/YY HH :MM:SS. mm

javascript - 单击网页打开 window.open() 并且包括框架集但 window.close 在框架集中不起作用

javascript - 如何在 javascript 中搜索替换为正则表达式并保持大小写不变

javascript - 获取每行中也与复合选择器匹配的第 n 个子节点

jquery - jQuery 的移动导航栏问题

javascript - 将图表放置到容器中

javascript - 如何从父组件将类应用到 Vue.js 功能组件?

javascript - 如何为动态生成的 IFRAME 设置 document.domain?

Javascript 井字游戏获胜者检查

javascript - waypoint.js 在第二部分不起作用