【问题标题】:jQuery Raty get number of starsjQuery Raty 获取星数
【发布时间】:2013-06-26 09:43:00
【问题描述】:

我有一个带有 jQ​​uery Raty 插件http://wbotelhos.com/raty/ 的简单评分系统。用户应该能够单击星号,输入非常短的文本,然后单击按钮。该按钮有一个onClick函数:

<a onclick="submitReview(eventID, stadt)" data-role="button" data-theme="b">Feedback abgeben</a>

这希望此函数调用 eventID、stadt 和选定的星数。如何将星数传递给 onClick 函数?这是我的代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Single page template</title>

<link rel="stylesheet" href="css/jquery.mobile-1.3.1.min.css" />
<link rel="stylesheet" href="css/tellthedj.css" />
<link rel="stylesheet" href="css/styles.css" />
<link href='http://fonts.googleapis.com/css?family=Titillium+Web:300,600' rel='stylesheet' type='text/css'>
<script src="js/jquery-1.8.3.min.js"></script>
<script src="js/jquery.mobile-1.3.1.min.js"></script>
</head>

<body>

<div data-role="page" id="menu"> 
<script src="js/functions.js"></script>
<script type="text/javascript" src="js/jquery.raty.js"></script>
<script>
    $(document).delegate('#menu', 'pageshow', function () {
        $('#star').raty();
        stadt = GetURLParameter('stadt');
        document.getElementById('deinestadt').value = stadt; 
        id = GetURLParameter('id');
        getEventFromId(id); 
        getEventText(id);
        eventID = GetURLParameter('id');

        $("a.button").click(function(){
        //Lets say, the Stars are next element to the <a>
        var stars = $(this).next().find("input[name='score']").val();
        submitReview(eventID, stadt, stars);
});

    });
</script>


<div data-role="panel" id="panel">
    <input id="deinestadt" style="text-align:left;" type="search" name="stadt" value="" onfocus="if(this.value=='wo bist du?') this.value=''" id="stadt" value="" />
    <br>
    <a class="menu_button" onclick="location='events.html?stadt='+stadt;" data-transition="slide" data-role="button"><img src="img/icon-map-marker.png"><span class="button_text">Events in der Nähe</span></a>
    <a class="menu_button" onclick="location='menu.html?stadt='+stadt+'&id='+eventID;" data-transition="slide" data-role="button"><img src="img/icon-house.png"><span class="button_text">Event Übersicht</span></a>
    <br>
    <a class="menu_button" onclick="location='reviews.html?stadt='+stadt+'&id='+eventID;" data-transition="slide" data-role="button"><img src="img/icon-badge.png"><span class="button_text">Bewertungen ansehen</span></a>
    <a class="menu_button" onclick="location='review.html?stadt='+stadt+'&id='+eventID;" data-role="button"><img src="img/icon-pencil.png"><span class="button_text">Event Bewerten</span></a>
    <br>
    <a class="menu_button" onclick="location='photos.html?stadt='+stadt+'&id='+eventID;" data-role="button"><img src="img/icon-photos.png"><span class="button_text">Fotos ansehen</span></a>
    <a class="menu_button" onclick="location='upload_photo.html?stadt='+stadt+'&id='+eventID;" data-role="button"><img src="img/icon-upload-photo.png"><span class="button_text">Foto hochladen</span></a>
    <br>
    <a class="menu_button" onclick="location='music.html?stadt='+stadt+'&id='+eventID;" data-role="button"><img src="img/icon-note.png"><span class="button_text">Musikwunsch</span></a>

</div><!-- /panel -->

  <!-- header -->
  <div data-role="header" data-position="fixed" id="header">
    <a href="#panel" data-role="button" data-icon="bars" data-iconpos="notext" data-inline="true"></a>
    <h1 id="headline">Event Bewerten</h1>
  </div>
  <!-- /header --> 

  <!-- content -->
  <div data-role="content"> 
    <div id="review">
        <h3>wie gefällt es dir hier?</h3>
        <div id="star"></div><br>
        <form>
            <label for="textarea-1">Schreib etwas über das Event:</label>
            <textarea cols="40" style="height:150px;" rows="10" name="textarea-1" id="textarea-1"></textarea>
        </form>
        <a onclick="submitReview(eventID, stadt)" data-role="button" data-theme="b">Feedback abgeben</a>
    </div>  
  </div>
  <!-- /content --> 

<div data-role="footer" data-position="fixed">      

</div><!-- /footer -->

</div>
<!-- /page -->

</body>
</html>

【问题讨论】:

  • 如果你使用 jQuery,你为什么使用onclick HTML 属性?改用 jQuery 的 on() 方法...至于获取星星,您还没有包含任何代码来显示星星来自哪里!

标签: jquery callback parameter-passing jquery-callback raty


【解决方案1】:

我刚刚看到这个插件有一个隐藏值,叫做score,它有被选中的星数..

给 a 一个类似的类:.button

$("a.button").click(function(){
    //Lets say, the Stars are next element to the <a>
    var stars = $(this).next().find("input[name='score']").val();
    submitReview(eventID, stadt, stars);
});

没有测试。没有标记很难... 希望对您有所帮助...

【讨论】:

    【解决方案2】:

    我明白了!我使用了插件click: function(score, evt){}的回调函数@

    这是我的标记:

    <script>
        $(document).delegate('#menu', 'pageshow', function () {
            $('#star').raty({
                click: function(score, evt) {
                $("#submit_button_review").click(function(){
                    submitReview(eventID, stadt, score);
                });
                }
            });
            stadt = GetURLParameter('stadt');
            document.getElementById('deinestadt').value = stadt; 
            id = GetURLParameter('id');
            getEventFromId(id); 
            getEventText(id);
            eventID = GetURLParameter('id');
    
        });
    </script>
    

    和按钮:

    <a id="submit_button_review"  data-role="button" data-theme="b">Feedback abgeben</a>
    

    感谢您的帮助;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-02
      • 1970-01-01
      • 2015-11-07
      • 2019-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      相关资源
      最近更新 更多