C# 通过ASP显示后,通过JQuery与元素交互

C# 通过ASP显示后,通过JQuery与元素交互,c#,jquery,asp.net,html,C#,Jquery,Asp.net,Html,我有一个简单的div <div id="error" class="notifications" runat="server" visible="false" ClientIDMode=Static></div> 这不起作用,我还将$(“#error”)替换为$(“.notifications”),但没有成功 注意:如果我删除visible=false并单击它,它将消失,它正在工作 更新我忘了提到,当我点击时显示div的按钮和div都在更新面板(对于Ajax)内,当我将

我有一个简单的div

<div id="error" class="notifications" runat="server" visible="false" ClientIDMode=Static></div>
这不起作用,我还将
$(“#error”)
替换为
$(“.notifications”)
,但没有成功

注意:如果我删除
visible=false
并单击它,它将消失,它正在工作

更新我忘了提到,当我点击时显示div的按钮和div都在
更新面板
(对于Ajax)内,当我将它们放在更新面板外时,一切都正常(但需要页面刷新)。

使用此选项

<div id="error" class="notifications" runat="server" href="javascript:void(0);"  onclick="fademe('errordiv')" visible="false" ClientIDMode=Static></div>

瞎猜:

您正在调用
$('#error')。在
$(function(){…})
节点实际出现在DOM中之前,从
$(function(){…})
中单击(function(){…})

如果是这种情况,您可以将事件委派与
.on
函数一起使用:前提是您的
UpdatePanel
在页面加载时存在于DOM中:

$(UpdatePanel).on('click', '#error', function(){ ... });

或者您可以使用
文档

$(document).on('click', '#error', function(){ ... });


下面是对事件委派的一个很好的解释:

检查
控制台中
div#error
display
属性。您尝试过
on()
?div是如何呈现到页面中的?您使用的是母版页吗?@RohanKumar Firefox的Inspect元素不显示任何显示属性。@SimonWhitehead
$(“.notifications”).on(“单击”,函数(){$(this.fadeOut();})不起作用。隐藏函数在
$(文档)中。就绪(函数(){..
我也尝试了
.on()
,但没有成功。@AliBassam从您对有关使用
.on()
的评论的回答中,您没有使用
.on()的事件委派功能
允许。链接的问题是否为如何使用它提供了新的思路?我尝试了:
$(“#updatePaneld”)。在(“单击”,“出错”,function()”…
这是正确的方法?@AliBassam
$(“#updatePaneld”)上
return?一个空的选择或一个包含元素的选择?@AliBassam添加了两个JSIDdle来演示其用法。因为,在第一次,由于控件不可见,它实际上没有添加到DOM中。因此,当它变为可见时,它将被添加到DOM中,而是动态地添加。jquery将向当前存在的那些控件添加侦听器页面加载,创建事件。因此jquery无法捕获由动态添加的控件触发的事件。因此我们需要绑定一个事件。
function fademe(id){

    alert('errordiv is clicked');
    $('#error').fadeOut();


    }
function fademe(id){

    alert('errordiv is clicked');
   error.fadeOut();


    }
$(UpdatePanel).on('click', '#error', function(){ ... });
$(document).on('click', '#error', function(){ ... });