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

ELLE

  • Support Team
  • 4598
  • 867
Такс, люди, нужна ваша помощь  :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

  • Практически профи
  • 2806
  • 377
Re: jQuery и работа над элементами в iframe
« Ответ #1 : 06.09.2013, 20:36:12 »
А вызвать медод в iframe который будет все пересчитывать внутри него? (конечно если фрейм на вашем сайте, а не с чужого кусок)
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016
*

flyingspook

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

fsv

  • Практически профи
  • 2524
  • 367
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() тоже вроде не работает
а как пробовала?
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения
*

ELLE

  • Support Team
  • 4598
  • 867
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

  • Профи
  • 3806
  • 698
  • Все начинается с Value
Re: jQuery и работа над элементами в iframe
« Ответ #5 : 06.09.2013, 22:17:51 »
Цитировать
Кто хочет, можете сами попробовать в стандартном редакторе TinyMCE в админке. Код подключите только где-нибудь и замените селекторы на свои
А на песочницу  выложить http://jsfiddle.net/
И по рисунку. По логике кнопка в редакторе должна быть
*

ELLE

  • Support Team
  • 4598
  • 867
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

  • Практически профи
  • 2524
  • 367
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 »
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения
*

ELLE

  • Support Team
  • 4598
  • 867
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

  • Практически профи
  • 2524
  • 367
RE: jQuery и работа над элементами в iframe
« Ответ #9 : 09.09.2013, 01:22:00 »
Хм, кстати зашла с Opera, и мой код работает... :o
fsv, пробовал этот вариант?
Тогда в Opera не пробовал, в ней я тырнет бороздю, работаю только в FF.
Сейчас попробовал в FF/Opera/Chrome , не пошло: e is null
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения
*

warlocksp

  • Живу я здесь
  • 933
  • 8
  • Красота и мудрость - в простоте....
RE: jQuery и работа над элементами в iframe
« Ответ #10 : 22.06.2016, 14:32:52 »
Не подскажите по этому вопросу, не могу найти ответа...
http://joomlaforum.ru/index.php/topic,328578.msg1651603.html#msg1651603
Разработка, сопровождения, продвижение веб ресурсов...Хостинг-провайдер...
ICQ : 663021519;Skype: Warl-Uanic;Nic-Handle: Warl-Uanic.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] ассоциативный массив для передачи в JS

Автор larikan

Ответов: 4
Просмотров: 141
Последний ответ 15.06.2017, 17:17:38
от larikan
[Решено] Не работает скрипт на странице Joomla 3

Автор Mick_20

Ответов: 5
Просмотров: 751
Последний ответ 17.11.2016, 17:01:28
от Mesuti
JQuery, событие колеса мыши в FF

Автор fbr

Ответов: 8
Просмотров: 323
Последний ответ 05.10.2016, 15:46:30
от vipiusss
Пишу свой модуль - работа с fields

Автор Absalem

Ответов: 3
Просмотров: 373
Последний ответ 25.08.2016, 12:55:50
от olejenya
[Решено] Php форму отображать без перезагрузки страницы

Автор mirstiker

Ответов: 19
Просмотров: 489
Последний ответ 16.02.2016, 00:27:01
от mirstiker