2012-01-05 60 views
0

當通過jQuery單擊按鈕時,我正在更改按鈕樣式。 以下是代碼。只更改jQuery類一次行爲

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#btnDiv .down").click(function() { 
      $(this).addClass("click"); 
     }); 
    }); 

因爲我有包圍的#btnDiv在UpdatePanel的上述功能僅作用一次。 問題的原因和解決方法是什麼?

+0

什麼問題? – Blender 2012-01-05 06:55:59

+1

你是什麼意思它只作用一次?你不能將同一個類多次添加到同一個元素(至少,這是沒有意義的)。 – 2012-01-05 06:56:46

+0

問題是,當我點擊按鈕有一個類.down它應該改變它的類。我的問題是它工作正常,但因爲我已經將它包含在updatePanel中,更改類代碼僅作用於第一次 – Shah 2012-01-05 06:57:55

回答

1

當你渲染你的updatePanel時,你需要再次執行這些javascript,否則在更新之後,以前的綁定事件將不存在。

看看jQuery.on()

如果你之前1.7有一個jQuery的版本,你也許需要使用.delegate().live()功能。

所以,你的代碼可能是:

$(document).ready(function() { 
     $("#btnDiv .down").on("click",function() { 
      $(this).addClass("click"); 
     }); 
    }); 

你不需要每次更新面板的渲染時間上面的代碼。只需執行一次。

+0

偉大的.live()爲我做了工作 – Shah 2012-01-05 07:27:22

0

假設「UpdatePanel」動態更改其內容。然後,您需要使用jquery .on()(或.delegate())函數來綁定動態更新元素的事件。