Как использовать JQuery с мастер-страницами? - PullRequest
30 голосов
/ 15 ноября 2008

Я могу заставить простые примеры работать нормально, если нет главной страницы. Все, что я хочу сделать, - это нажать кнопку и сказать ей «привет мир» с javascript в файле .js, используя главную страницу. Любая помощь очень ценится:)

Ответы [ 13 ]

0 голосов
/ 19 декабря 2017
  • ПРОБЛЕМА -> при использовании страниц Site.Master имена идентификаторов элементов управления (для элементов управления ASP) получают префикс ContentPlaceHolderID к ним. (Обратите внимание, что это не проблема для элементов управления не asp, так как они не «переосмысливаются» - то есть они просто выглядят как написано)

  • SOLUTIONS:

      1. Simplest -> add ClientIDMode = "Static" к определению элемента управления asp (или задается со свойствами) на странице aspx
    • Альтернативы включают в себя:
      1. Жесткое кодирование имени ContentPlaceHolderID в коде js, например "# ContentPlaceHolder1_controlName" - eek !!!!
      1. используя <% = controlName.ClientID%> на странице ASP - плюс, назначая его - там переменной (или объекту переменных). Переменная (или точечная нотация объекта) может затем использоваться на внешней странице js (ПРИМЕЧАНИЕ. Невозможно использовать <% = controlName.ClientID%> во внешнем js)
      1. Использование CssClass с уникальным (то же имя, что и ID) на странице ASP и ссылка на элемент управления как ".controlName" вместо "#controlName"
      1. Использование «[id $ = _ controlName]» вместо «#controlName» - это небольшой поиск и поиск элемента управления, заканчивающегося уникальным именем - таким образом, запуск не имеет значения
0 голосов
/ 28 марта 2012

Адам Лассек связан с использованием селекторов jQuery, хотя я думаю, что стоит явно назвать выбор элементов по их классу, а не по их идентификатору.

например. Вместо $("#myButton").click(function() { alert('button clicked'); });

вместо этого используйте $(".myButtonCssClass").click(function() { alert('button clicked'); });

и добавьте класс к кнопке:

<asp:Button ID="myButton" runat="server" Text="Submit" CssClass="myButtonCssClass" />

Преимущество этого заключается в том, что вам не нужно беспокоиться о том, заканчиваются ли два идентификатора элемента управления одинаково, а также возможность применять один и тот же код jQuery к нескольким элементам управления одновременно (с одним и тем же классом css). *

0 голосов
/ 24 июля 2009

Я также начал с самых простых примеров и мне не повезло. Наконец мне пришлось добавить файл jquery .js вне раздела <head> главной страницы. Это был единственный способ заставить что-либо работать в Firefox (пока еще не пробовал другие браузеры).

Мне также пришлось ссылаться на файл .js с абсолютным адресом. Не совсем уверен, что с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...