簡體   English   中英

使用jQuery將客戶端事件綁定到動態數據列表項

[英]Binding client side event to dyanamic datalist items using jquery

我陷入了一個問題。 我正在動態加載數據列表中的元素。 而且我正在嘗試使用jquery在列上綁定click事件。 當我與它一起使用母版頁時,它工作正常。 因為它遵循頁面生命周期,並在子頁面數據綁定之后加載jquery。 但是,當我在普通頁面(沒有母版頁面)中使用它時,它不允許我執行所需的操作。 我知道為什么會這樣,原因是在元素綁定之前加載了jquery。 因此,jQuery無法綁定click事件,因為它無法找到那些控件。

綁定元素中已經具有“ item”類

這是我的jQuery代碼:

$(document).ready(function () {
    $('.item').click(function () {
          //do something here
   });
});

后面的代碼:

 protected void Page_Load(object sender, EventArgs e)
 {
     using (TestEntites db = new TestEntites())
    {
        IEnumerable<Template> Test = from t in db.Template
                                                    where t.Customer == clsuser.CustomerID
                                                        && t.Region == user.RegionID
                                                    select t;

        dlTemplateGroups.DataSource = Test;
        dlTemplateGroups.DataBind();

        BindTemplates(db);
    }     
 }
$(document).ready(function () {
    $('body').on('click', '.item' ,function () {
          //do something here
   });
});

$('body')根據您的html使其更加具體

我曾經也遇到過同樣的問題,這個問題確實很痛苦。

這是我的解決方案:

不用單擊綁定,例如,創建一個函數:

function reBinding()
{
      $('.item').on("click",function () {
      //do something here
      });
}

並在數據綁定完成后調用此函數。 如果您使用的是更新面板,那就太好了。

ScriptManager.RegisterStartupScript(rptGridAlbum.GetType, "scriptname", "reBinding();", True)

暫無
暫無

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

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