2014-03-06 88 views
0

我在asp.net mvc中通過ajax獲得部分,它第一次和第二次罰款,但之後,所有的jquery代碼停止工作。這是我的代碼:那我爲「此功能」中的代碼不起作用註釋代碼後第二ajax調用所有jQuery代碼不起作用

<script> 

    var jqgd = jQuery.noConflict(); 
    jqgd(function() { 
     jqgd('#[email protected]').on('click', '#[email protected] a', function() { 
      if (this.href == "") { return; } 
      jqgd.ajax({ 
       url: this.href, 
       type: 'GET', 
       cache: false, 
       success: function (result) { 
        alert(result); 
        jqgd('#[email protected]').html(result); 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 

<script type='text/javascript'> //This function 
    jQuery(function ($) { 

     $("div, p, a, b, strong, bold, font, span, td") 
     .filter(function() { 
      return $(this).children(":not(.word)").length == 0 
     }) 
     .each(function() { 
      this.innerHTML = $(this).text().replace(/\S+/g, function (word) { 
       return "<span class='word'>" + word + "</span>"; 
      }); 

      $(".word", this).filter(isEnglish).addClass('english'); 
      $(".word", this).filter(isPersian).addClass('persian'); 
     }); 

     function isEnglish() { 
      return $(this).text().charCodeAt(0) < 255; 
     } 

     function isPersian() { 
      return $(this).text().charCodeAt(0) > 255; 
     } 
    }); 
</script> 

<div id="[email protected]"> 
    <div style="float:right;"> 
     <div class="searchtitles" style="float: right;">@ViewBag.term</div> 
     <table class="jjt" cellpadding="0" cellspacing="0"> 
      <tr class="j2t"> 
       <td class="j13t">field</td> 
       <td class="j13t">field</td> 
       <td class="j13t">field</td> 
       <td class="j13t">field</td> 
       <td class="j13t">field</td> 
       <td class="j13t">field</td> 
       <td class="j13t">field</td> 
      </tr> 
      @foreach (var item in ViewBag.Terms) 
      { 
       Mydata 
      } 


     </table> 

     <div id="[email protected]" style="float:left; direction:ltr; margin-left:-20px; margin-top:-15px;">@Html.PagedListPager((IPagedList)ViewBag.Tours, page => Url.Action("results", new { page }))</div> 
    </div> 
</div> 

一部分。在我的佈局中,我也使用了提示彈出窗口,在第二次調用後它不起作用。看起來我的所有jQuery代碼在第二次通話後都停止工作。

什麼問題?

+0

U取代所有內容將沒有元素是prev那裏在[email protected] – Neha

+0

@Neha我應該這樣做,在這個問題之前,第二次調用它重定向到頁面,並在這個問題我修復它。看看這個:http://stackoverflow.com/questions/22186666/after-second-ajax-call-jquery-not-working/22186823?noredirect=1#comment33710441_22186823 –

回答

0

嘗試類似的東西,你要執行的代碼的這個

<script> 
     var jqgd = jQuery.noConflict(); 
     jqgd(function() { 
      jqgd('#[email protected]').on('click', '#[email protected] a', function() { 
       if (this.href == "") { return; } 
       jqgd.ajax({ 
        url: this.href, 
        type: 'GET', 
        cache: false, 
        success: function (result) { 
         alert(result); 
         jqgd('#[email protected]').html(result); 
         init(); 
        } 
       }); 
       return false; 
      }); 
     }); 
    </script> 

    <script type='text/javascript'> //This function 
     function isEnglish() { 
      return $(this).text().charCodeAt(0) < 255; 
     } 

     function isPersian() { 
      return $(this).text().charCodeAt(0) > 255; 
     } 
     function init(){ 
     $("div, p, a, b, strong, bold, font, span, td") 
      .filter(function() { 
       return $(this).children(":not(.word)").length == 0 
      }) 
      .each(function() { 
       this.innerHTML = $(this).text().replace(/\S+/g, function (word) { 
        return "<span class='word'>" + word + "</span>"; 
       }); 

       $(".word", this).filter(isEnglish).addClass('english'); 
       $(".word", this).filter(isPersian).addClass('persian'); 
      }); 

     } 
     jQuery(function ($) { 
      init(); 
     }); 
    </script> 

簡單地使功能。

因爲您的代碼在DOM準備就緒的初始元素上運行。

ajax之後,你會得到一個新的元素,代碼不運行,所以把你的代碼放在函數中,並在DOM準備好和你的ajax調用之後調用它。

+0

你應該有一些努力來解釋一點點你的代碼和問題? –

+0

非常感謝machhhhhh Rajesh,它現在有效。我也使用酒杯。我是這樣使用它? –

+0

是的,只有這樣,但檢查如果酒醉api提供方式適用於動態element.otherwise您可以以這種方式使用。 –