Передача идентификаторов - PullRequest
3 голосов
/ 18 ноября 2011

Я беру div с помощью функции .each, но у меня возникают проблемы с передачей идентификатора, который я получаю в своей функции модального ящика.Вот код:

(function() {
$('div.heriyah').each(function() { 
$(this).html('<div class="add"><div id="add_button_container"><div id="add_button" class="edit_links">+ ADD NEW CONTENT</div></div></div><div class="clear"></div><div class="placeable"></div></div>');

$('.add').click(function() {
$.fallr('show', {
          content     :  '<iframe width="620" height="600" src="<? echo $URL ?>/manage_content.php?id=<? echo $pageID; ?>&div='+$(this).attr('id')+'"></iframe>',
          width       : 620 + 5, // 100 = for width padding
          height         : 600,
          closeKey        : true,
          closeOverlay    : true,
          buttons     : {}
}); 
}); 

}); 

}) ();

Я получу Undefined, если я запрашиваю переменную внутри моего модального блока.

Я использую это:

'+$(this).attr('id')+'

Чтобы получить идентификатор внутри моей функции модального ящика.

Спасибо, барабанщик

Ответы [ 5 ]

3 голосов
/ 18 ноября 2011

Я не уверен, что такое fallr, но попробуйте изменить свой код на это:

    (function() {
    $('div.heriyah').each(function() { 
    $(this).html('<div class="add"><div id="add_button_container"><div id="add_button" class="edit_links">+ ADD NEW CONTENT</div></div></div><div class="clear"></div><div class="placeable"></div></div>'); 

    var curID = $(this).attr('id');//get the id before you go into fallr

    $('.add').click(function() {
    $.fallr('show', {
              content     :  '<iframe width="620" height="600" src="<? echo $URL ?>/manage_content.php?id=<? echo $pageID; ?>&div='+curID +'"></iframe>',
              width       : 620 + 5, // 100 = for width padding
              height         : 600,
              closeKey        : true,
              closeOverlay    : true,
              buttons     : {}
    }); 
    }); 

    }); 
})();
2 голосов
/ 18 ноября 2011

Вы ссылаетесь на $(this) из ВТОРОЙ анонимной функции. Итак, вы просите о $(this) .add, а не div.heriyah Вот почему вы не получаете удостоверение личности.

0 голосов
/ 18 ноября 2011

проблема классической области - вы пытаетесь получить атрибут id элемента '.add', потому что вы находитесь в этой области.

Кэшируйте $ (this) в .eachиспользуйте и используйте это:

$('div.heriyah').each(function() {
$(this).html('<div class="add"><div id="add_button_container"><div id="add_button"      class="edit_links">+ ADD NEW CONTENT</div></div></div><div class="clear"></div><div class="placeable"></div></div>');

var that = $(this);

$('.add').click(function() {
    $.fallr('show', {
          content     :  '<iframe width="620" height="600" src="<? echo $URL ?>/manage_content.php?id=<? echo $pageID; ?>&div='+that.attr('id')+'"></iframe>',
          width       : 620 + 5, // 100 = for width padding
          height         : 600,
          closeKey        : true,
          closeOverlay    : true,
          buttons     : {}
}); 
    }); 

}); 
0 голосов
/ 18 ноября 2011

В точке вашего кода, где вы строите, iframe, $(this) будет значением $('.add'), , а не вашего исходного тега div.

Прежде чем связывать событие click, просто создайте новую переменную и сохраните $(this).attr('id') и используйте вместо этого значение.

0 голосов
/ 18 ноября 2011

Это потому, что `это сейчас относится к Fallr

$('.add').click(function() {
    var _this = $(this);
    $.fallr('show', {
              content     :  '/manage_content.php?id=&div='+_this+'">',
              width       : 620 + 5, // 100 = for width padding
              height         : 600,
              closeKey        : true,
              closeOverlay    : true,
              buttons     : {}
    }); 
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...