У меня есть управление переключателем asp.net в моем приложении, я хочу применить событие jquery click на этом элементе управления с именем класса. Я установил свойство CssClass и сделал скрипт с именем класса, но его не работает. Когда я проверяю HTML-код в firebug, он делает span с CSSClass, который я предоставил. Это мой код 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 () {
});
но все еще не работает, его даже не показывает никаких ошибок в консоли
Обработчики событий привязаны только к выбранным в данный момент элементам; они должны существовать на странице в момент, когда ваш код выполняет вызов.click()
Вы назначаете обработчик события элементу до того, как он действительно загрузится в DOM.
Поэтому вы должны использовать делегирование событий как,
$("document").on("click", ".quest", function () {
// rest code here
});
Возможно, вы используете код, прежде чем элемент dom фактически загрузится на страницу.
Оберните свою функцию внутри $(document).ready(function()
$(document).ready(function () {
$(".quest").click(function () {
alert('s');
});
});
$(document).ready(function(){});
обработчик.