Почему не происходит событие нажатия моей кнопки? - PullRequest
1 голос
/ 26 сентября 2011

У меня есть следующий файл js:

var IOMaximizeButton = {
 setup: function () {
    $(this).click(function(){
        console.log("maximize button was clicked!");
    });
  }
};

$(document).ready(function() {
  IOMaximizeButton.setup();
});

Вот тело моего HTML:

 <body>
    <a href="#" data-role="button" data-icon="delete">Maximize</a>
    <iframe id='iframe-primary' name='iframe-primary' src='foo.html' />
    <iframe id='iframe-secondary' name='iframe-secondary' src='bar.html' />
    </body>

Я хочу, чтобы этот javascript выполнялся при нажатии моей кнопки.Но это не похоже на срабатывание.Зачем?

Я импортировал свой JS-файл в нижней части HTML-страницы.

Ответы [ 4 ]

3 голосов
/ 26 сентября 2011

В вашем объекте this относится к экземпляру самого объекта, поэтому вы пытаетесь связать событие click с объектом JavaScript, а не с элементом DOM. Я предполагаю, что вы действительно хотите что-то вроде этого:

var IOMaximizeButton = {
 setup: function () {
    $("#yourButton").click(function(){
        console.log("maximize button was clicked!");
    });
  }
};

Вот рабочий пример .

1 голос
/ 26 сентября 2011

Ваша функция не привязана ни к какому селектору, поэтому я не могу перехватить какие-либо события.$ (это) является пустым объектом.

Попробуйте изменить $ (this) на некоторые конкретные селекторы.

1 голос
/ 26 сентября 2011

Вы имели в виду $("#maximize").click( и <a id="maximize" ...?

1 голос
/ 26 сентября 2011

Вы не связали кнопку с функцией

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

var IOMaximizeButton = {
    setup: function () {
        $("#button").click(function(){
        console.log("maximize button was clicked!");
      });
    }
};
<a href="#" id="button">Maximize</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...