如何通过输入/空格使rateYo星星可选?

时间:2019-12-10 13:27:57

标签: javascript html rateyo

使用rateYo我得到了4行星星,它们可以很好地工作,但是,我被要求仅通过键盘使它们成为必需。 我确实在所有星星上添加了tabindex="0",所以我可以通过按Tab键,变体,按Enter或空格键来触发它们。这就是我现在得到的内容(只有一行,但其他行的制作方式相同)

$(".stars-range").rateYo({
  starWidth: "30px",
  normalFill: "#bbb",
  ratedFill: "#00897b",
  minValue: 0,
  maxValue: 5,
  numStars: 5,
  spacing: "10px",
  fullStar: true,
  onChange: function (rating, rateYoInstance) {
    var ID = $(this).attr('id');
    $('#range-'+ID).val(rating);
  }
});

$('polygon').keypress(e => {
  var self = $(e.target)
  var KeyID = e.keyCode;
    if(KeyID == 13 || KeyID == 32) {
    e.preventDefault();
    self.click();
  }
})
<div class="row m-tb-20">
            <div class="col s4 sp_text-right">
              <label for="usability">Navegação</label>
            </div>
            <div class="col s6 rel">
                <div class="stars-range jq-ry-container" id="usability" data-target="usability" style="width: 190px;">
                    <div class="jq-ry-group-wrapper">
                        <div class="jq-ry-normal-group jq-ry-group">
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#bbb">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 " tabindex="0"></polygon>
                            </svg>
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#bbb" style="margin-left: 10px;">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 " tabindex="0"></polygon>
                            </svg>
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#bbb" style="margin-left: 10px;">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 " tabindex="0"></polygon>
                            </svg>
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#bbb" style="margin-left: 10px;">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 " tabindex="0"></polygon>
                            </svg>
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#bbb" style="margin-left: 10px;">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 " tabindex="0"></polygon>
                            </svg>
                        </div>
                        <div class="jq-ry-rated-group jq-ry-group" style="width: 0%;">
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#00897b">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 "></polygon>
                            </svg>
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#00897b" style="margin-left: 10px;">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 "></polygon>
                            </svg>
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#00897b" style="margin-left: 10px;">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 "></polygon>
                            </svg>
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#00897b" style="margin-left: 10px;">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 "></polygon>
                            </svg>
                            <!--?xml version="1.0" encoding="utf-8"?-->
                            <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 12.705 512 486.59" x="0px" y="0px" xml:space="preserve" width="30px" height="30px" fill="#00897b" style="margin-left: 10px;">
                                <polygon points="256.814,12.705 317.205,198.566 512.631,198.566 354.529,313.435 414.918,499.295 256.814,384.427 98.713,499.295 159.102,313.435 1,198.566 196.426,198.566 "></polygon>
                            </svg>
                        </div>
                    </div>
                </div>
                <input type="hidden" name="usability" id="range-usability" value="0">
            </div>
          </div>

它不起作用。我试图弄清楚当通过Tab键将焦点对准星星并按下Enter /空格键但没有成功时如何伪造星星。有什么想法吗?

0 个答案:

没有答案