0

スターをクリックしているときに ajax によってレコードが送信されるスクリプトを作成しました。そして、love.raty をリロードするリロード アクション リンク。実行リンクではなく、星を2回クリックした後にリロードしたい。何か案は?ありがとう!

<input id="reload-function-demo" type="text" value="true" disabled="disabled" />
<a id="reload-action" href="javascript:void(0);" title="reload" class="run">run</a>

<script type="text/javascript">
    $(function() {
        $('#love').raty({
              //instructions//
            click: function(score, evt) {
                $(this).fadeOut(function() { $(this).fadeIn(); });
                var book = $('#book_id').val();
                var user = $('#user_id').val();
                var token = $('#token').val();
                var ip = $('#ip').val();
                $.ajax({
                    type: 'POST',
                    url: 'http://www.booksface.pl/content/elements/love_book_db.php',
                    data: {'score':score, 'book_id': book, 'user_id': user, 'token': token, 'ip': ip},
                    success: function(name,value,exdays) {
                    }
                });
            }
        }); 
        $('#reload-action').on('click', function() {
        $('#love').raty('click');
        $('#love').raty('reload');
      });
    });
</script>
4

1 に答える 1

0

次のようなカスタム データ属性を使用できます。

var love = $("#love");
$('#reload-action').on('click', function(){
    if(typeof love.data("clicked") === "undefined" || !love.data("clicked")){
         love.data("clicked", "true").raty('click');
    }else{
        love.data("clicked", "false").raty('reload');
    }
});

2 回目のクリックでリロードする理由を確認することをお勧めします。目的を達成するためのより良い方法がおそらくあります。

于 2013-08-06T21:55:02.250 に答える