0

我正在尝试实现一个评级插件。我能够让评级插件正常工作。我正在尝试扩展它。因此,每次单击评级时,它都会将标签置于评级本身之下。目前它绑定到页面上其他地方的 css id。

该场景是一条推特消息,似乎无法获得选择器来更新消息本身。它将信息放在所有人身上,因为它不是唯一的。

我怎样才能使该项目独一无二。该插件的文档是http://rateit.codeplex.com/documentation

 $(document).ready(function () {

      //we bind only to the rateit controls within the products div

      $(".rateit").bind('over', function (event, value) { $(this).attr('title', value); });
      $(" .rateit").bind('rated reset', function (e) {

          var ri = $(this);

          //if the use pressed reset, it will get value: 0 (to be compatible with the HTML range control), we could check if e.type == 'reset', and then set the value to  null .
          var value = ri.rateit('value');
        var ratingid = ri.data('ratingid');           



          //maybe we want to disable voting?
          ri.rateit('readonly', true);

          $.ajax({
              url: '/Home/GetRating', //your server side script
              data: { id: ratingid, value: value }, //our data
              type: 'POST',
              success: function (data) {
                  $('#ratemsg').html(data);

              },
              error: function (jxhr, msg, err) {
                  $('#response').append('<li style="color:red">' + msg + '</li>');
              }
          });
      });

  });

</script>

 @foreach (var item in Model)
{ 
 <div id="TwitterMessageBox@(item.StatusId.ToString())" class="TwitterMessageBox">

    <ol>
        <li class="TweetLineBody">
            @Html.Hidden("Statusid", item.StatusId)
            <div class="TwitProfileImage">
                <img src=@Url.Content(item.ImageUrl) alt="@item.ScreenName" />
            </div>
            <div class="TwitRealName">
                @item.User
            </div>
            <div class="TwitNickName">
                @MvcHtmlString.Create(@Html.Namify(@item.ScreenName))
            </div>
            <div class="TweetText">
                @MvcHtmlString.Create(@item.Tweet)</div>
            <div class="TweetTime">
                @Html.RelativeDate(@item.Created)</div>

            <div id="TweetMessageRating@(item.StatusId.ToString())" name="TweetMessageRating@(item.StatusId.ToString())"  class="TweetRating">

               // This is where the rating widget goes and records and updates              
                <div data-ratingid="@item.StatusId"   class="rateit"></div>
         // this is where i want to go but i cant figure out a way
                 <span id ="ratemsg" name="TweetRating@(item.StatusId.ToString())"  class="ratemsg"> </span>
             </div>

        </li>
    </ol>

  </div>
 }

正如您在上面看到的,我试图通过将作为状态 id 的消息 id 添加到选择器来设置唯一键,但我似乎无法使用通配符选择它。我在 jquery 网站上尝试了一些示例,但似乎无法理解。

4

1 回答 1

2

不要使用 id,只需保存当前.rateit元素的兄弟姐妹。

var ri = $(this),
    msg = ri.next();

 ...

    success: function (data) {
        msg.html(data);
    },
于 2012-04-14T15:37:37.130 回答