Как сообщить моей странице о кнопке, которой не было при загрузке страницы - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть страница .aspx и отдельный файл .js, который содержит все мои JavaScript и jQuery.Страница также имеет UserControl, который не существует при загрузке страницы и который появляется только при нажатии определенной кнопки.И UserControl содержит, помимо прочего, кнопку JavaScript.

Проблема, с которой я сталкиваюсь, заключается в подключении только что созданной кнопки JavaScript, которая не существовала при загрузке страницы, к моему .js file.

Сначала я попытался добавить jQuery select, чтобы получить кнопку, которая находится внутри UserControl к document.ready(), которая находится в моем существующем файле .js, например:

$(".TheClassOnMyUserControlButton").click(function () { // do stuff here }

Но я не мог заставить его отвечать на все, что я пытался.Поэтому я поместил свой jQuery в тег <script> на самой странице UserControl, и кнопка неожиданно начала реагировать.

С тех пор я понял, что причина выбора jQuery не былаРабота с файлом .js заключается в том, что кнопка не существует при загрузке страницы, и вы не можете выбрать то, что не существует, и это имеет смысл сейчас.

Так что мой псевдо-новичок-разработчикМозг начал пытаться выяснить, как я могу обновить document.ready() в моем .js файле, как только UserControl был на странице, чтобы он узнал о недавно созданном UserControl и его кнопках.

Я спросил другого разработчика, с которым я работаю, и он сказал попробовать bind.jquery, не объясняя, как.

Поиск в Google, который привел меня сюда, как обычно, и я видел в документации jQuery, что их *Метод 1041 * устарел, и вместо него предлагают использовать on().

Я думаю, я понимаю, что имел в виду другой разработчик, и я знаю, что я хочу сделать, но я получаюнемного неясен в деталях, и я не совсем уверен, как использовать on() для достижения того, что я пытаюсь сделать.

Я знаю, что я мог бы просто оставить тег <script> внутри UserControl,но я хотел бы хранить все свои JavaScript и jQuery в одном месте, если смогу.

У кого-нибудь есть какие-либо предложения или вещи, которые я мог бы попробовать?

Я ценю любую помощьлюбой может предложить.

Спасибо

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Вы можете связать методы или события jQuery, используя метод «on», просмотрев весь документ, а затем метод «on», указав правильный селектор.Надеюсь, что это имеет смысл.Вы можете проверить пример ниже.

$(document).on("click", ".className", function (){ /*code here*/ });
0 голосов
/ 05 февраля 2019

Заранее создайте кнопку и скройте ее.Затем покажите эту кнопку / раздел / панель на случай других действий.

C# code behind
control.Visible = false;
control.Visible = true;

or

Jquery/bootstrap front end
$('#myElementID').addClass('hidden');
$('#myElementID').removeClass('hidden');
0 голосов
/ 05 февраля 2019

У вас есть много вариантов привязки события к кнопке.

1.) Просто напишите функцию и привяжите ее к кнопке на нужном событии.Например:

<script>function doStuff(){
    ....
    }
</script>
<button onclick="doStuff()">Do Something</button>

2.) Вы должны связать свою функцию в тот момент, когда вы создали кнопку.Например:

$('#Container').append('.button');
$('.button').on('event',doStuff);

Для более глубокого ответа я должен увидеть ваш код

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