2

私はasp.net 3.5を使用しています

「ホバー」イベントで正常に機能するjquery関数があります。

問題は、ブラウザが ajax 呼び出しを使用して一部の div を更新した後に発生します。

その時点から、ブラウザはホバー イベントを無視し、jquery 関数を呼び出しません。ページが更新された後にのみ正常に戻ります。

*私が使用しているajax呼び出しを行う

<asp:UpdatePanel ID="UpdatePanel4"  runat="server" UpdateMode="Always">
         <ContentTemplate runat="server">
            <div id='map' runat="server"></div>                        
          </ContentTemplate>
 </asp:UpdatePanel>

-- これは jquery 関数です --

$(function() {
  $('a.trigger').hover(function() {

    var index = $(".trigger").index(this);

  var pop=document.getElementById("pop_up");

  var place=document.getElementsByClassName('place')[index ];

  var car_id=document.getElementsByClassName('car_id')[index];
  var enter_time=document.getElementsByClassName('time')[index ];
  pop.innerHTML="Park At: "+place.innerHTML+"</br>Car Id:"+car_id.innerHTML+"</br>Enter At:"+enter_time.innerHTML;

    $('div#pop_up').show();
  }, function() {
    $('div#pop_up').hide();
  });
});

-- これは ajax コールバック後に応答しない div --

<div id="pop_up" runat="server">
    <p  id='who_parks_here' runat="server"></p>
</div>
4

1 に答える 1

2

.on()ASP.NET AJAX 呼び出しは、AJAX パネルで新しい HTML を受信したときに、既にアタッチされているイベント ハンドラーを削除するため、使用する必要があります。

$(function() {
    $(document).on('hover', 'a.trigger', function() {

        var index = $(".trigger").index(this);

        var pop = document.getElementById("pop_up");

        var place = document.getElementsByClassName('place')[index];

        var car_id = document.getElementsByClassName('car_id')[index];
        var enter_time = document.getElementsByClassName('time')[index];
        pop.innerHTML = "Park At: " + place.innerHTML + "</br>Car Id:" + car_id.innerHTML + "</br>Enter At:" + enter_time.innerHTML;

        $('div#pop_up').show();
    }, function() {
        $('div#pop_up').hide();
    });
});
于 2012-11-27T13:03:23.843 に答える