右クリックのログとかリストの逆順表示とかのjQuery
この記事は公開または最後に更新されてから2193日が経過しています。情報が古くなっている可能性があるのでご注意下さい。
≪ jQueryによる右クリックや左クリックした時のログ ≫
jQueryにおいて左クリック時のイベントは click で普通に使うのであたりまえのようですが、それでは右クリック時というのは?、と contextmenu ということです。それらを使用すれば、なにかしらをクリックしたときにXMLHttpRrequestを使ってログを残すことができるわけです。
jQueryにおいてのXMLHttpRrequestに関しては『画像クリック時のjquery』にて書いています。
そこの記事と重複しますが、記録したいデータとしては日時、ip address、ページのurlにクリックした要素なんですが、jQueryではアクセスしているページのurlはlocation.hrefで得られますが、ip addressは得られないと思うので、元のページにおいてphpであらかじめhidden属性のinput要素に仕込んでおいたものを取得して使用します。 <script> タグ内で変数に入れてしまっても良いのですが、特にこだわる必要もないのではと。別にhidden inputでなくても <p> タグでも何でも良いわけですが、そうするとcssでhiddenする必要が出てきます。
まず、phpでデータを作って、
htmlでhidden inputに仕込んでおくと。
そして、jQuery。
jQueryにおける部分はたったこれだけ。ほんとに便利です。
送信するデータの中にある画像ファイルは、画像をクリックした場合のデータと同じくするためのもので全く意味はありません。
送信されたデータを受け取って実際にログファイルに記録するlogimage.phpに関しては『画像をクリックした時のログ』に書いていますが、以下のとおり。logimage.phpはこのようにしています。
6行目のstr_replaceは、画像をクリックした時の処理でなんら意味はありません。
≪ リストの逆順に並び替えやローテーション ≫
我がサイトもなんだかんだで気が付くと投稿数もそこそこ多くなって、サイドバーの投稿リストも結構長くなりつつあります。で、リストの逆順に並び替えての表示ができるようにしようと。
ボタンを一つ <p id="reverse"> タグで作っておいて、あとはjQueryを書くだけと。
それともう一つ、たとえば一番下の項目を一番上に持ってくるとか、逆に一番上を一番下にでもいいのですが、それを順々に続けてやればリストのローテーションとなるわけで、それも出来るようにしておけばまぁちょっとは便利かなということで。
とりあえずそのリストはこのページのサイドバーにある投稿リストということで、そのhtml は次のようになっています。
この中の<ul id="postlist">のリストが対象となります。
と、Firefox、Chromeでなんてことなく動いているので気にもしていなかったのですが、IE11では逆順に並び替えの方がちゃんと動作しません。
ローテーションの方は大丈夫のようですが・・・、またIEだけと・・・、未だにあるんだなこういうの・・・、やり方がいけないようで。
ということで、逆順の方は今の所IEでは動きません。調べないと・・・。
ネットで探すとこれにてできるとのこと。
ははは・・・、全然簡単にできるのね、しかし知らないというのは・・・、ちょっと恥ずかしい。
で、もう少し親子構造がちょっと複雑になった以下のhtml のような場合。
以下のようで出来ましたね。
Post : 2015/09/04 13:02
Comments feed
Trackback URL : https://strix.main.jp/wp-trackback.php?p=58157