利用者の操作を検出できるイベント
RateItでは利用者の操作に対応した表4のようなイベントが定義されています。
イベント名 | 内容 | 備考 |
---|---|---|
rated | 評価値を確定した時 | - |
reset | 評価値をリセットした時 | - |
over | マウスオーバー時 | マウスオーバー時点の評価値を取得可能 |
beforerated | 評価値を確定する直前 | preventDefaultによりイベントを打ち消し可能 |
beforereset | 評価値をリセットする直前 | preventDefaultによりイベントを打ち消し可能 |
RateItのイベント実装例をリスト4に示します。
// 評価値を確定した時 $("#rateit1").on("rated", function(){ $("#msg1").text("event: rated"); }); // 評価値をリセットした時 $("#rateit1").on("reset", function(){ $("#msg1").text("event: reset"); }); // マウスオーバー時 $("#rateit1").on("over", function(event, value){ // valueにその時点の評価値が格納される $("#msg2").text("event: over, value= " + value); }); // 評価値を確定する直前 $("#rateit1").on("beforerated", function(event, value){ $("#msg3").text("event: beforerated, value= " + value); // confirmでキャンセルした時にはイベントをなかったことに if (!confirm("値を"+ value + "に変更します。よろしいですか?")) { event.preventDefault(); } }); // 評価値をリセットする直前 $("#rateit1").on("beforereset", function(event){ $("#msg3").text("event: beforereset"); // confirmでキャンセルした時にはイベントをなかったことに if (!confirm("値をリセットします。よろしいですか?")) { event.preventDefault(); } });
リスト4を実行して評価値の確定・リセット、マウスオーバーを行うとイベントが発生してWebページにイベント内容が表示されます。また評価値を確定・リセットする直前には確認ダイアログ(confirm)が表示され、キャンセルを選択するとそのイベントをなかったことにできます。
RateItを操作するJavaScriptメソッド
JavaScriptにおいてrateitメソッドの引数にオプション名を指定して、オプション値や現在の評価値を取得・設定することができます。またrateitメソッドの引数に"reset"を指定することで、評価値を初期状態に戻すことができます。メソッドの使用例をリスト5に示します。
$("#btn1").on("click", function(){ // 現在の評価値を取得 alert("Value= " + $("#rateit1").rateit("value")); }); $("#btn2").on("click", function(){ // 現在の評価値を設定 $("#rateit1").rateit("value", 10); }); $("#btn3").on("click", function(){ // 最大値を取得 alert("MaxValue= " + $("#rateit1").rateit("max")); }); $("#btn4").on("click", function(){ // 最大値を設定 $("#rateit1").rateit("max", 10); }); $("#btn5").on("click", function(){ // リセット $("#rateit1").rateit("reset"); });
リスト5を実行すると図6のように、ボタン押下でスター評価の内容を操作できるようになります。