1

重複の可能性:
jQuery keypress() イベントが起動しない?

ワードプレスをCMSとして使用しています

投票システムも開発中

これは投票機能用の私のjqueryです

キープレスイベントでこの関数を実行するにはどうすればよいですか?

たとえば、誰かがキー「A」を押すと、この機能が自動的に実行されます

少なくとも 30 分間は Google で検索しましたが、関連する結果が見つかりませんでした

 <script type="text/javascript">
/* <![CDATA[ */ 
(function($) {
 function setCookie(name,value,days) {
 if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
 }

 $(document).ready(function(){
 $("body").on('click', '.vote-btn:not(.disabled)', function () { 
 var el = $(this),
    nonce = $("input#voting_nonce", el.parent()).val(),
    id = el.attr('id').replace(/vote-/, ''); // get the Post ID

 el.html('<span id="loader"></span>');
 var data = {
    action: 'add_votes_options',
    nonce: nonce,
    postid: id,
    ip: '<?php echo $_SERVER['REMOTE_ADDR']; ?>'            
};
 $.post('<?php echo admin_url('admin-ajax.php'); ?>', data,
function(response){
 console.log( response );

     if(response!="-1") {

el.html('<img src="<?php get_bloginfo('url'); ?>/wp- content/themes/9GAG/happysimily.png">').unbind('click').addClass('clickedyellow');
 $('.vote-btn', el.closest('div')).addClass('disabled');
 $("#vote", el.closest('article')).addClass('clickedlove'); 



        if(response=="null") {
            alert("A vote has already been registered to this IP address.");

        } else {
            $("#votecounter", el.closest('article')).html(response); 


        }
        var cookie = getCookie("better_votes");
        if(!cookie) {
            var newcookie = id;
        } else {
            var newcookie = cookie + "," + id;
        }
        setCookie("better_votes", newcookie, 0);
    } else {
        alert("There was a problem registering your vote. Please try again later or enable browser cookies.");
    }

 });

 return false;
});

 })
 })(jQuery);




 /* ]]> */
 </script>
4

2 に答える 2

3

キープレス(またはキーアップ、キーダウンなど)のイベントリスナーを追加する必要があります

$(document).keypress(function(e) {
 if (e.keyCode == 65) {              // "A" key
  //code.... 
 }
});
于 2013-01-21T07:50:15.570 に答える
2

キープレスはさまざまな方法でキャプチャできます。単純な方法は、Jqueryのデフォルトの方法を使用することです。

.keypress()

したがって、関数ブロックを関数名に関連付ける必要があります。投票機能はグローバルではなく、準備完了のみのコンテキストであるため、これはドキュメント準備完了機能内にある必要があります。

(function($) { 

   var yourVotingFn = function(){
          .........//your code logic
    }

   $(body).keypress(function(event) {
     if ( event.which == 13 ) {//Enter key
       yourVotingFn();
     }
   });

});
于 2013-01-21T07:53:52.487 に答える