0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 17074 Просмотров
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Такс, люди, нужна ваша помощь  :D

Имеется iframe, в котором есть определенный блок с классом .col2 и инлайновой шириной, допусти style="width:50%"
По клику на определённый блок вне фрейма, я добавляю новый блок .col2, далее получаю новое кол-во всех .col2 (допустим было всего 2шт, с новым элементом стало 3)

А вот далее, мне надо задать новое значение ширины для всех! Этим значением будет уже не 50%, а 33.333333333333336%

И тут случился затык!

Код: javascript
$("iframe").contents().find(".col2").css("width", count+"%");

Добавляет ширину только во вновь добавленный блок! Ранее существующие идут лесом! .each() тоже вроде не работает

целиком всё
Код: javascript
jQuery(document).ready(function(){
$("#jform_params_content_menu-lbl").after("<div class='blank' id='addcols'><a>button</a></div>");

$( "#addcols" ).click(function(){

        $("iframe").contents().find(".right-menus").append("<div class='col2'>I'm in new Element!</div>");
             var count = 100/$("iframe").contents().find(".col2").length;
              alert(count);

        $("iframe").contents().find(".col2").css("width", count+"%");
    });
 
});


еще попробовала сначала удалить style , потом добавить.
как-то странно работает, только по отдельности

Код: javascript
$( "#addcols" ).click(function(){
$("iframe").contents().find(".col2").removeAttr('style'); //удалили style
        $("iframe").contents().find(".right-menus").append("<div class='col2'>I'm in new Element!</div>"); //вставили новый блок    

$("iframe").contents().find(".col2").attr('style', "width:'10px'"); //добавили новый атрибут
 // и атрибут не добавился, сработали только первые 2 строчки
  });

короче или так, или так. вместе эти 3 строки не хотят работать


« Последнее редактирование: 07.09.2013, 02:32:33 от ELLE »
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Re: jQuery и работа над элементами в iframe
« Ответ #1 : 06.09.2013, 20:36:12 »
А вызвать медод в iframe который будет все пересчитывать внутри него? (конечно если фрейм на вашем сайте, а не с чужого кусок)
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Re: jQuery и работа над элементами в iframe
« Ответ #2 : 06.09.2013, 21:01:54 »
а если добавлять ко клику не .col2 а уже .col3 и тд.
потом расчет делать по if(.col2) if(.col3) и дт.
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: jQuery и работа над элементами в iframe
« Ответ #3 : 06.09.2013, 21:26:20 »
.css() - только первый элемент набора обрабатывает

$("iframe").contents().find(".col2").css("width", count+"%");

$("iframe").contents().find(".col2").each(function(){
  $(this).css("width", count+"%");
});

Цитировать
.each() тоже вроде не работает
а как пробовала?
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: jQuery и работа над элементами в iframe
« Ответ #4 : 06.09.2013, 22:12:07 »
.css() - только первый элемент набора обрабатывает

$("iframe").contents().find(".col2").each(function(){
  $(this).css("width", count+"%");
});
а как пробовала?
нет, вот в данном случае .css() обрабатывает все вновь добавленные .col2, вне зависимости от их кол-ва, но не затрагивает те, что уже там были
пробовала и each() и map()
- не работает все равно

Спойлер
[свернуть]
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: jQuery и работа над элементами в iframe
« Ответ #5 : 06.09.2013, 22:17:51 »
Цитировать
Кто хочет, можете сами попробовать в стандартном редакторе TinyMCE в админке. Код подключите только где-нибудь и замените селекторы на свои
А на песочницу  выложить http://jsfiddle.net/
И по рисунку. По логике кнопка в редакторе должна быть
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: jQuery и работа над элементами в iframe
« Ответ #6 : 06.09.2013, 22:31:06 »
Федор, это весь код что есть (первый в старт-посте), только jquery надо подключить и его; и селекторы вставить свои
у меня поле называется content_menu, соотвественно селектор - #jform_params_content_menu-lbl, вам нужно поменять на свое (можете в модуле html-код глянуть или в материале, где вам удобнее).
есть предположение, что просто скрипты редактора мешают (где-то перехватывают)
насчет кнопки, ну будет потом обычная кнопка редактора, только смысл в ней, если не отрабатывает пользовательский скрипт внутри редактора, а мне нужно жестко задавать разметку и пересчитывать ширину

Спойлер
[свернуть]
« Последнее редактирование: 06.09.2013, 23:42:14 от ELLE »
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
Re: jQuery и работа над элементами в iframe
« Ответ #7 : 07.09.2013, 02:16:04 »
Цитировать
Кто хочет, можете сами попробовать в стандартном редакторе TinyMCE в админке. Код подключите только где-нибудь и замените селекторы на свои
\administrator\templates\khepri\index.php
страница создания материала - TinyMCE
Код: javascript
<script type="text/javascript">
jQuery(function($) {
  $("#catid").after("<br /><br /><span id='addcols' style='cursor:pointer;'>ClickMe</span>");
  $("#addcols").on("click",function(){
    $("body",$("iframe#text_ifr").contents()).append("<div class='col2' style='text-align:center; float:left;'>Hi, ELLE!<br />It works!</div>");
    var count = 100/$("body",$("iframe#text_ifr").contents()).find(".col2").length;
    $("body",$("iframe#text_ifr").contents()).find(".col2").each(function(){
      $(this).css("width", count+"%");
    });
  });
});
</script>
« Последнее редактирование: 07.09.2013, 02:22:33 от fsv »
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

ELLE

  • Глобальный модератор
  • 4510
  • 893 / 0
Re: jQuery и работа над элементами в iframe
« Ответ #8 : 07.09.2013, 02:31:03 »
Оно-оно!  :D Спасибо! Теперь все просто отлично  *DRINK*

-----------------

Хм, кстати зашла с Opera, и мой код работает... :o
Код: javascript
jQuery(document).ready(function(){

$("#catid").after("<div class='button2-left' style='margin:10px;'><div class='blank' id='addcols'><a>Добавить колонку</a></div></div>");

$( "#addcols" ).click(function(){
       $("iframe#text_ifr").contents().append("<div class='col2'>I'm in new Element!</div>");
       var count = 100/$("iframe#text_ifr").contents().find(".col2").length;      
   $("iframe#text_ifr").contents().find(".col2").css("width", count+"%");  
 });

});
странно, видимо кеш...хотя чистила не раз

fsv, пробовал этот вариант?
« Последнее редактирование: 07.09.2013, 02:54:47 от ELLE »
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
RE: jQuery и работа над элементами в iframe
« Ответ #9 : 09.09.2013, 01:22:00 »
Хм, кстати зашла с Opera, и мой код работает... :o
fsv, пробовал этот вариант?
Тогда в Opera не пробовал, в ней я тырнет бороздю, работаю только в FF.
Сейчас попробовал в FF/Opera/Chrome , не пошло: e is null
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
*

warlocksp

  • Завсегдатай
  • 1198
  • 17 / 4
RE: jQuery и работа над элементами в iframe
« Ответ #10 : 22.06.2016, 14:32:52 »
Не подскажите по этому вопросу, не могу найти ответа...
http://joomlaforum.ru/index.php/topic,328578.msg1651603.html#msg1651603
Мудр не тот, кто знает много, а тот, чьи знания полезны. Эсхил
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Переход по ссылки и запуск функции? [РЕШЕНО]

Автор warlocksp

Ответов: 19
Просмотров: 947
Последний ответ 21.02.2020, 12:06:24
от warlocksp
[РЕШЕНО] Скроллинг страницы вниз?

Автор warlocksp

Ответов: 3
Просмотров: 643
Последний ответ 02.02.2020, 15:56:55
от warlocksp
Разобраться с небольшим кодом PHP (РЕШЕНО)

Автор Шмайсер

Ответов: 18
Просмотров: 967
Последний ответ 16.01.2020, 21:47:56
от sivers
Как изнутри iframe вызвать внешнюю функцию? [РЕШЕНО]

Автор dm-krv

Ответов: 6
Просмотров: 857
Последний ответ 25.08.2019, 20:41:07
от dm-krv
Как получить объект с полной информацией о материале через API Joomla? [РЕШЕНО]

Автор dm-krv

Ответов: 4
Просмотров: 907
Последний ответ 03.08.2019, 16:30:51
от dm-krv