Функция jQuery - DIV контейнер в качестве параметра - PullRequest
1 голос
/ 23 марта 2012

Можно ли узнать, откуда запускается функция jQuery?

<div>
  <script language="javascript">
    $(document).ready(function () {
        whereAmI($(currentDIV));
    });
  </script>
</div>

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

Для вас не сохранено ничего о расположении DOM, откуда был загружен исполняемый в данный момент JavaScript. Однако для достижения этой памяти вы можете использовать тот факт, что сценарии выполняются по мере их загрузки:

<div id="target">
  <script>
      var thisScript1 = $('script').filter(':last');
      $(document).ready(function () {
          console.log(thisScript1.closest('div').attr('id')); // prints 'target'
      });
  </script>
</div>
<div id="second">
  <script>
      var thisScript2 = $('script').filter(':last');
      $(document).ready(function () {
          console.log(thisScript2.closest('div').attr('id')); // prints 'second'
      });
  </script>
</div>​

Здесь $('script').filter(':last'); относится к последнему элементу сценария на странице, который на момент выполнения является «текущим сценарием». Обратите внимание, что для каждого скрипта, который я хочу запомнить, я назвал переменную, в которой находится объект скрипта, иначе он будет перекрыт последующими скриптами. Альтернативой может быть завершение каждого сценария в немедленно выполняемую анонимную функцию, для роскоши связывания локальной переменной thisScript.

0 голосов
/ 23 марта 2012

Если функция вызывается каким-либо событием, первым параметром является Объект события , и вы можете просто написать что-то вроде.

$('a').click(function(e){
    console.log(e.target);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...