如何将asp.net控件id动态传递给jquery函数参数? 这是我试图这样做的方式
SelectedDivAnimation('#'+<%=txtFirstName.ClientID%>);
SelectedDivAnimation('#'+<%=txtLastName.ClientID%>);
function SelectedDivAnimation(aspControl) {
$(controlid).on('focus', function () {
$(this).css({'width':'100%','transition':'1s'});
});
$(controlid).on('focusout', function () {
$(this).css({ 'width': '50%', 'transition': '1s' });
});
}
我甚至试试这个
SelectedDivAnimation('#<%=txtFirstName.ClientID%>');
SelectedDivAnimation('#<%=txtLastName.ClientID%>');
当我运行它时,它没有按预期工作,没有任何反应。
答案 0 :(得分:0)
<%
和%>
之间的所有内容都发生在服务器上,所以您需要做的就是删除+
并将第二个引号移到%>
之后 -
SelectedDivAnimation('#<%=txtFirstName.ClientID%>');
SelectedDivAnimation('#<%=txtLastName.ClientID%>');
假设它在ASP页面中。
因此,假设txtFirstName.ClientID
设置为client_a
,服务器会将<%=txtFirstName.ClientID%>
替换为client_a
,然后再将其发送给客户端。所以客户端实际上会看到这个 -
SelectedDivAnimation('#client_a');
如果您在客户端看到正确的ID,那么这很好,但是您有另一个问题 -
function SelectedDivAnimation(aspControl) {
$(controlid).on('focus', function () {
$(this).css({'width':'100%','transition':'1s'});
});
$(controlid).on('focusout', function () {
$(this).css({ 'width': '50%', 'transition': '1s' });
});
}
您将变量aspControl
传递给函数,但是您使用的是名为controlid
的变量;你可能想把它们都设置为相同,即 -
function SelectedDivAnimation(aspControl) {
$(aspControl).on('focus', function () {
$(this).css({'width':'100%','transition':'1s'});
});
$(aspControl).on('focusout', function () {
$(this).css({ 'width': '50%', 'transition': '1s' });
});
}