Вызывание определяемой пользователем функции в jQuery

Я пытаюсь вызвать определяемую пользователем функцию в jQuery:

$(document).ready(function() {
  $('#btnSun').click(function() {
    myFunction();
  });
  $.fn.myFunction = function() {
    alert('hi');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btnSun">Say hello!</button>

Я попробовал следующее также:

$(document).ready(function() {
  $('#btnSun').click(function() {
    myFunction();
  });
});

function myFunction() {
  alert('hi');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btnSun">Say hello!</button>

Это, кажется, не работает! Какая-либо идея, где я неправ?

57
задан informatik01 17 January 2018 в 18:26
поделиться

4 ответа

Если вы хотите вызвать обычную функцию через событие jQuery, вы можете сделать это следующим образом:

 $ (документ) .ready (функция () {$ ('# btnSun'). click (myFunction);}); функция myFunction () {предупреждение ('привет'); } 
   
72
ответ дан 24 November 2019 в 19:25
поделиться

Они называются плагинами , как прокомментировал Ябок. Чтобы иметь смысл, функция плагина должна что-то делать с элементом, через который она вызывается. Рассмотрим следующее:

jQuery.fn.make_me_red = function() {
    return this.each(function() {
        this.style.color = 'red';
    });
};

$('a').make_me_red();
12
ответ дан 24 November 2019 в 19:25
поделиться

Попробуйте это $ ('div'). MyFunction ();

Это должно работать

$(document).ready(function() {
 $('#btnSun').click(function(){
  myFunction();
 });

function myFunction()
{
alert('hi');
}
7
ответ дан 24 November 2019 в 19:25
поделиться
jQuery.fn.make_me_red = function() {
    return this.each(function() {
        this.style.color = 'red';
    });
};

$('a').make_me_red() // - instead of this you can use $(this).make_me_red() instead for better readability.
3
ответ дан 24 November 2019 в 19:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: