Выполнить функцию через JQuery - PullRequest
2 голосов
/ 21 марта 2019

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

Я пытаюсь придумать Javascript, который имеет функцию для каждого внешнего сайта, чтобы открываться в новом окне. И некоторый jQuery, который выполняет правильную функцию для ссылки, по которой щелкают определенные классы.

Это одна из функций (другие имеют другое имя и URL):

    function booking-site-1(elt) {
    window.open("https://bookings.domainname.eu/4043/31", "_blank", "toolbar=no,status=no,scrollbars=yes,resizable=yes,top=500,left=500,width=600,height=745");
}

А это JQuery

jQuery(".booking-site-1-class").click(function(){
                       alert("Finally!")});

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

Надеюсь, что кто-то может дать мне несколько советов здесь.

1 Ответ

1 голос
/ 21 марта 2019

Во-первых, имена функций, объявленные с использованием var/const/let/function, не могут иметь дефисов - - фактически никакие имена, объявленные как таковые в JavaScript, не могут.Вместо этого используйте подчеркивание:

function booking_site_1(elt) {
    window.open("https://bookings.domainname.eu/4043/31", "_blank", "toolbar=no,status=no,scrollbars=yes,resizable=yes,top=500,left=500,width=600,height=745");
}

И чтобы заставить его исполниться, просто добавьте его в свою функцию обработки кликов:

jQuery(".booking-site-1-class").click(function(){
    alert("Finally!");
    booking_site_1($("#randomElement"));
});

Как указано Jaromanda X в комментарии , вы можете создавать функции как свойство объекта window или любого объекта,

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