2012-01-05 61 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())函数来绑定动态更新元素的事件。