JQuery работает только когда я вставляю его в консоль - PullRequest
2 голосов
/ 10 июля 2011

Я работаю над расширением Chrome, и метод click (), который я вызываю, работает только после того, как я вставил его в консоль инспектора расширений.

Разметка выглядит так:

<ul id="results-list">
  <li><a href="#">something</a></li>
  <li><a href="#">something</a></li>
  ... and so on ...
</ul>

Итак, ничего особенного, правда. Однако эти <li><a>...</a></li> заполняются на основе данных json, возвращаемых при отправке формы. Итак, я думаю, что это как-то связано с элементами, отсутствующими в onReady (), но я много раз пытался поместить анонимный метод (ниже) внутри onReady, снаружи onReady, а также внутри и снаружи onSubmit, и до сих пор не повезло .

Мой jQuery следующий:

$(document).ready(function(){
  $('form').submit(function(){
    ... make the JSON request & populate the form ...
  });
  $("#results-list a").click(function(){
    $('body').width(600);
    return false;
  });
});

У кого-нибудь есть понимание этого? Я думаю, что это либо местоположение моего .click() метода, либо ошибка Chrome Extensions, о которой я не знаю.

Спасибо!

1 Ответ

1 голос
/ 10 июля 2011

Переместите ваше событие в ваш обратный вызов, поскольку часть DOM, к которой вы пытаетесь получить доступ, недоступна, пока не вернется с сервера:

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