簡體   English   中英

ASP.NET如何使此jQuery在頁面加載/回發之間持續工作?

[英]ASP.NET How do I get this jQuery to work persistently across page loads / post backs?

在ASP.NET中,我嘗試將mColorPicker(http://blog.meta100.com/post/600571131/mcolorpicker)與我的頁面一起使用。

它可以在初始頁面加載時工作,可以很好地選擇顏色,並且可以根據需要進行連接。 但是,當我更新頁面時(單擊一個按鈕以顯示另一個面板/隱藏其他面板),它突然停止工作,好像JavaScript不在那里。

我有以下代碼:

<script type="text/javascript">
  $(document).ready(function () {
    $('#color3').bind('colorpicked', function () {
      $(".P_FrameDisplay_222").css("background-color", $(this).val());
    });
  });
</script>
...
<div style="margin: 5px; float: left;">
  <input type="color" id="color3" value="#ff0667" data-text="hidden" style="width: 40px; height: 40px; border-style: none;" />
</div>

在使用其他JavaScript代碼之前,我曾遇到過此問題,要解決此問題,請使用此頁面加載javascript函數。

<script type="text/javascript">
  function pageLoad() {
    imagePreview();
  }
</script>

我如何才能使它在頁面加載/回發之間持續工作?

我假設您使用updatepanels,在這種情況下,您可以使用頁面請求管理器來管理部分頁面更新。 像這樣:

//some initialization code

var prm = Sys.WebForms.PageRequestManager.getInstance();

prm.add_endRequest(function (sender, args) {
    //some initialization code
});

看來您正在使用更新面板(我想是因為pageLoad函數)。 因此,請記住在$(document).ready上運行的任何內容,還需要在pageLoad函數中運行(如果內容已替換)。

假設您使用的是最新的jQuery,請嘗試以下代碼段,但將其放在更新面板之外:(假設#color3僅顯示一次,如果您需要它在處理一類元素時應定義一個...類)

<script type="text/javascript">
  $(document).ready(function () {
    $('#color3').live('colorpicked', function () {
      $(".P_FrameDisplay_222").css("background-color", $(this).val());
    });
  });
</script>
  • 從jQuery 1.4開始, .live()方法支持自定義事件以及所有冒泡的JavaScript事件。 [強調我的]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM