2014-12-16 5 views
2

Доброе утро в моем часовом поясе.Получить элемент изнутри функции

я имел этот код в моем HTML страницы

<span id="x> 
    <div onclick="$(this).applyFancybox({ 
     trigger: !$.browser.msie, 
     target: (event.srcElement || event.target) 
    }); return false;"> 

И я меняюсь к этому коду

<span id="x"> 
    <div> 
</span> 

<script> 
... 
$(document).ready (function() { 

    $("#x div") 
     .click(function(){ 
      this.applyFancybox({ 
       trigger: !$.browser.msie, 
       target: (event.srcElement || event.target) 
      }); return false; 
     }); 
} 
... 
</script> 

Это не работает, потому что я думаю, что это не указывает на элемент сНу, как я могу это исправить?

Заранее спасибо С наилучшими пожеланиями

+1

что такое '' –

+2

Недопустимый div в пробеле. Этого достаточно, чтобы выполнить много операций. –

+0

Он должен указать на ваш div. – putvande

ответ

0

Попробуйте код, приведенный ниже, это может помочь

<span id="x"> 
    <div> 
</span> 

<script type="text/javascript"> 
... 
$(document).ready (function() { 
    $("#x").click(function(){ 
     this.applyFancybox({ 
      trigger: !$.browser.msie, 
      target: (event.srcElement || event.target) 
     }); return false; 
    });  
} 
... 
</script> 

Счастливый Кодировок :)

+1

http://api.jquery.com/live/ Как и jQuery 1.7, устарел. Что касается jQuery 1.9, удалено. –

+1

Спасибо за информацию @Michael Lumbroso – ManoharSingh

+1

Используйте http://api.jquery.com/on/, если хотите воспроизвести одно и то же поведение! –

1

попробуйте изменить this к $(this)

this является JavaScript Object и $(this) - объект jQuery obj ЭСТ

Так что ваш окончательный код будет выглядеть

$(document).ready (function() { 
    $("#x div") 
     .click(function(){ 
      $(this).applyFancybox({ 
       trigger: !$.browser.msie, 
       target: (event.srcElement || event.target) 
      }); return false; 
     }); 
} 

Кстати, $.browser.msie также рекомендуется от 1,3 и удалены в 1,9

0

Внутри обработчика событий this указывает на HTMLDivElement не объект JQuery , Нет такого метода applyFancybox. Попробуйте $(this).

Смежные вопросы