JQuery не работает, когда его выводят в JS-файл - PullRequest
0 голосов
/ 28 сентября 2010

$(function() { $('#<%=btnAdd.ClientID%>').click( { code }); });

Приведенный выше код jquery, который я написал внутри кода aspx, работает нормально. Но когда я попытался экстернализовать код, создав один файл js и перенеся внутренний код в этот файл, он не работает. Я имею в виду, когда я пишу тот же код во внешний файл и добавляю, что на странице aspx он не работает. Может ли кто-нибудь помочь мне решить проблему?

Ответы [ 3 ]

2 голосов
/ 28 сентября 2010

<% = btnAdd.ClientID%> не будет проанализирован рабочим процессом asp.net, поэтому он не будет заменен идентификатором клиента кнопки. Этот код должен быть на вашей странице aspx.
Альтернативой является выбор вашей кнопки другим способом, например, класс, ввод [type = "submit"] и т. д.

$(function() { $('input[type="submit"]').click( { code }); });
1 голос
/ 28 сентября 2010

Это потому, что <%=btnAdd.ClientID%> находится буквально в файле, это не оцененный тег сервера, в результате чего получается что-то вроде container_btnAdd, вместо этого присвойте кнопке класс, например:

<asp:Button id="btnAdd" runat="server" CssClass="btnAdd" Text="Add" />

Затем используйте это класс в вашем селекторе, поэтому идентификатор не будет иметь значения, например:

$(function() { 
  $('.btnAdd').click({ code }); 
});
0 голосов
/ 17 августа 2011

Это можно сделать, передав значение в переменную со страницы aspx. Подобно: На странице aspx:

<script language="javascript" type="text/javascript">
var btnAdd = '<%= btnAdd.ClientID %>';
<script>

во внешнем js-файле:

$(function() 
{ 
   $('#' + btnAdd).click( {
        ----code---- 
    }); 
});
...