我的应用程序中有asp.net单选按钮控件,我想在此控件上使用类名称应用jquery单击事件。我已经设置了CssClass属性并使用类名创建了脚本,但是它不起作用。当我在firebug中检查HTML时,它使用我提供的CSSClass创建了span 这是我的aspx代码
<asp:RadioButton ID="radioyes" CssClass="quest" GroupName="Ques" runat="server" Text="Yes" />
<asp:RadioButton ID="radiono" CssClass="quest" GroupName="Ques" runat="server" Text="No" />
在浏览器中呈现为
<span class="quest"><input type="radio" value="quest2yes" name="ctl00$ContentBody$Wizard1$Q2" id="ctl00_ContentBody_Wizard1_radioyes"><label for="ctl00_ContentBody_Wizard1_radioyes">Yes</label></span>
<span class="quest"><input type="radio" value="quest2no" name="ctl00$ContentBody$Wizard1$Q2" id="ctl00_ContentBody_Wizard1_radiono"><label for="ctl00_ContentBody_Wizard1_radiono">No</label></span>
当我在控制台中输入$(".quest").length
时,它也会显示0
。
我正在尝试这个
$(".quest").click(function(){
});
我也试过
$('#<%=radioyes.ClientID%>').click(function () {
});
但仍然无效,它甚至没有在控制台中显示任何错误
答案 0 :(得分:4)
您可能在dom元素实际加载到页面之前使用代码。
将您的功能包裹在$(document).ready(function ()
$(document).ready(function () {
$(".quest").click(function () {
alert('s');
});
});
答案 1 :(得分:1)
事件处理程序仅绑定到当前选定的元素;他们 在您的代码调用.click()
时,页面上必须存在
在将元素实际加载到DOM之前,您正在为元素分配事件处理程序。
因此,您必须使用事件委派,
$("document").on("click", ".quest", function () {
// rest code here
});