2010-10-12 2 views
1

Я пытаюсь загрузить контент из базы данных с помощью simpletip. Мой код:помощь при помощи динамического содержимого

<script type="text/javascript"> 

    $(document).ready(function(){ 
     $('a.regularsList').simpletip({ 
      onBeforeShow: function(){ 
       this.load('/regulars/tooltip', {id: $(this).attr("id")}); 
      } 
     }); 
    }) 

Получаю, что идентификатор не определен. Я не понимаю, что я делаю неправильно, так как я пытаюсь получить доступ к значению атрибута id.

ответ

2

В текущем коде this относится к document, вместо того, чтобы использовать .each() цикл здесь, так что this относится к якорю вы хотите, как это:

$(function(){ //short for $(document).ready(function(){ 
    $('a.regularsList').each(function() { 
    var a = this; 
    $(this).simpletip({ 
     onBeforeShow: function(){ 
      this.load('/regulars/tooltip', { id: a.id }); 
     } 
    }); 
}); 

Внутри цикла .each(), this относится к текущему a.regularsList элементу вы просматриваете, так что вы можете просто использовать this.id, чтобы получить свойство id.

+0

Тем не менее это вызывает ту же проблему. – user253530

+0

независимо от того, могу ли я использовать this.id или $ (this) .attr ('id'), я все равно получаю undefined в консоли firebug. – user253530

+0

@ user253530 - woops, 'this' относится к их объекту внутри этой функции, необходимо сохранить ссылку, проверить обновленный ответ :) –

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