アンケート用Ajax簡易投票所Q v3.25 ユーザガイド
投票後に外部のJavascript関数を実行する
投票が行なわれた後、ディフォルトの対応では、「ご投票ありがとうございました」というお知らせボックスを表示します。
外部のJavascript関数を実行して、この対応を変更または拡張することができます。
外部のJavascript関数の指定
投票後にJavascript関数を実行するには、貼り付けた投票所タグに、data-onvoteを追加して、
実行したい関数の名前を指定します。下の例では、投票が行なわれた後にfoo1という名前を持ったjavascript関数を実行します。
<div class='ajax-poll' tclass='simple' data-onvote='foo1'></div>
投票が行なわれた後に、foo1という名前を持ったjavascript関数が呼ばれるので、
投票所を貼りつけたホストページにfoo1関数を書いておいてください。
下の例では、投票が行なわれた時に「投票完了!」というメッセージをダイアログボックスで表示します。
<script>
function foo1() {
alert("投票完了!");
return true;
}
</script>
この例では、return true;の行で、trueを返しています。trueを返すことで、
お知らせボックスの「ご投票ありがとうございました」も表示されます。
下の投票所で試してみてください。
お知らせボックスの非表示
お知らせボックスを非表示にするには、以下のようにfalseを返します。
<div class='ajax-poll' tclass='simple' data-onvote='foo2'></div>
<script>
function foo2() {
alert("投票完了!");
return false;
}
</script>
この例では、「投票完了!」というメッセージのダイアログボックスは表示されますが、
お知らせボックスの「ご投票ありがとうございました」は表示されません。
下の投票所で試してみてください。
応用例 : 投票後に別のページへ飛ばす
投票後に別のページへ飛ばす外部関数を示します。この例では、www.yahoo.co.jpへ飛ばします。
<div class='ajax-poll' tclass='simple' data-onvote='foo3'></div>
<script>
function foo3() {
document.location = 'http://www.yahoo.co.jp/';
return false;
}
</script>
外部関数で引数を受け取る
今までの例に出てきた外部関数は、foo()のように引数がありませんでした。
実際、外部関数には次の二つの引数が送られています。
jqo : | 投票所のjQueryオブジェクト |
tclass : | 投票所の名前 |
以下の例では、投票後に(投票所を消して)「(--投票所名--)の投票完了!」のメッセージをホストページに書きこむ例を示します。
<div class='ajax-poll' tclass='simple' data-onvote='foo4'></div>
<script>
function foo4( jqo, tclass ) {
jqo.html( tclass + 'の投票完了!' );
return false;
}
</script>
下の投票所を試してみてください。投票後、投票所が消えて「simpleの投票完了!」のメッセージがページに挿入されます。
※ 上記の例で使用されているhtml()はjQueryの関数です。html()の使用法については、jQueryの解説書をご参照ください。