0

マウスリーブ関数からajaxリクエストをトリガーできるかどうか疑問に思いましたか?liデータベースで更新できるように、マウスが離れたときに文字列「Y」を送信したいと思います。

これは万が一可能ですか?

(function(){
  $('li#myId').mouseenter(function(){
    var y = 'Y';
  }).mouseleave(function(){

    $.ajax({
      type: 'POST',
      url: 'update.php',
      data: 'y='+y,
      success: function(response){
        $('li.#myId').html(response);
      }

    });
  });

})();

4

2 に答える 2

0

もちろん、yデータとして保存するだけです。

(function(){
    var postY = function (y) {
        $.ajax({
          type: 'POST',
          url: 'update.php',
          data: 'y='+y,
          success: function(response){
              $('#myId').html(response);
          }
        });
    };

    // li#myId using both a tag and id is unnecessary since id is unique
    $('#myId').mouseenter(function(e){
        $(this).data('y', 'Y');
    }).mouseleave(function(e){
        postY($(this).data('y'));
    });
})();
于 2012-04-11T09:42:59.227 に答える
0

関数内で「y」変数を宣言すると、その関数でのみ使用可能になります。$(document).ready関数の後で宣言し、イベントで変更する必要があります。mouseleaveイベントが発生したときにajax経由で送信できるよりも。

$(document).ready(function(){
  var y = 'Y'
  $('li#myId').mouseenter(function(){
     // whatever you want to do here with "y"
  });

  $('li#myId').mouseleave(function(){
     // ajax
  });
});
于 2012-04-11T09:43:25.057 に答える