• Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Как сделать... Тема только по сайтам в системе uCoz » Cкрипт подгрузки кода из другого файла? JavaScript (Сделать option в столбец и скрипт работал)
Cкрипт подгрузки кода из другого файла? JavaScript
Дата: Суббота, 27.06.2015, 15:17 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


legolas,
Цитата legolas, Пн, 22.06.2015, 22:06:10
Как сделать, чтобы содержимое блока открывалось после исполнения скрипта?

Поставить функцию открытия блока после исполняемого скрипта.


 
Дата: Среда, 01.07.2015, 15:16 |
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Привет, не получается вывести рейтинг в результатах поиска
Код

  <script>
  $(document).ready(function(){
  $('#searchText div.portfolio-thumb .eTitle a').each(function(){  
  var el=$(this),$this=el.parents('div.portfolio-thumb'),url=el.attr('href');  
  if(/board/i.test(url.toLowerCase())){  
  $.get(url,{},function(data){  
  var rat=$(data).find('span.rat').html('html')||'undefined';  
  if(src!=='undefined'){  
  $this.find('.rated').html(rat);  
  };
  });};});  
  });  
  </script>

Рейтинг находит, но не выводит. Посмотри, что не так.

Добавлено (01.07.2015, 13:59)
---------------------------------------------

Код


  <script>
  $(document).ready(function(){
  $('#searchText div.portfolio-thumb .eTitle a').each(function(){  
  var el=$(this),$this=el.parents('div.portfolio-thumb'),url=el.attr('href');  
  if(/board/i.test(url.toLowerCase())){  
  $.get(url,{},function(data){  
  var rat=$(data).find('.rat').html("<?$RSTARS$('16','/.s/t/1321/rating.png','0','float')?>")||'undefined';  
  if(rat!=='undefined'){  
  $this.find('.rated').html(rat);  
  };
  });};});  
  });  
  </script>


Так тоже не получилось

Добавлено (01.07.2015, 15:16)
---------------------------------------------
Все, сам разобрался.

 
Дата: Четверг, 02.07.2015, 20:51 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


legolas,
Цитата legolas, Ср, 01.07.2015, 15:16:37
Посмотри, что не так.

вот это:
Цитата legolas, Ср, 01.07.2015, 15:16:37
if(src!=='undefined'){

Цитата legolas, Ср, 01.07.2015, 15:16:37
сам разобрался.

замечательно)


 
Дата: Понедельник, 06.07.2015, 10:56 |
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Привет, помоги вытащить значение css.

Код

<div id="elem1" >
<div id="elem2" >
<style>#elem1{background-color:#112233;}</style>


К диву elem2 нужно добавить атрибут value равный бэкграунду elem2, т. е. #112233
чтобы получалось:
Код

<div id="elem1" >
<div id="elem2" value="#112233" >
<style>#elem1{background-color:#112233;}</style>


 
Дата: Понедельник, 06.07.2015, 12:52 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


legolas,
Цитата legolas, Пн, 06.07.2015, 10:56:56
Привет, помоги вытащить значение css.

Добрый)
.css() для JQ
или currentStyle + getComputedStyle на чистом JS


 
Дата: Вторник, 21.07.2015, 23:09 |
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Привет. Уже всю голову сломал.
Напомню:
Скрипт меняет поле $OTHER4$ на инпут и селект.
val инпута = выбор селекта.

Код
(function(){  
var s=$('#addEntForm .manFlOth4'),l=s.val();  
s.replaceWith('<input type="text" id="bdF16" class="manFlOth4" style="width:100%" name="other4"><br><select id="bdrd" multiple>'+DIRECTOR+'</select>');  
$('#addEntForm .manFlOth4').val(l);    
})();


На странице редактирования скрипт возвращает значения из инпута обратно в селект.
Код
$(document).ready(function(){  
var s='';  
$('#bdF16').each(function(){  
s+=this.value+',';  
});  
      
$('#addEntForm #bdM45 input').each(function(){  
if(s.indexOf($(this).next().html())!=-1)  
this.checked=true;  
});  
});


Как сделать, чтобы можно было вписывать значения в инпут если значения селекта не выбраны?
И чтобы оно сохранилось потом при редактировании материала.
Если можно готовое решение, моск уже не думает.


 
Дата: Среда, 22.07.2015, 00:53 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


legolas,
Цитата legolas, Вт, 21.07.2015, 23:09:09
На странице редактирования скрипт возвращает значения из инпута обратно в селект.
Код
var s='';    
$('#bdF16').each(function(){    
s+=this.value+',';    
});

Ой, как стремно.. а что, так не работает:
Код
var s=$('#bdF16').val()+',';


Цитата legolas, Вт, 21.07.2015, 23:09:09
Как сделать, чтобы можно было вписывать значения в инпут если значения селекта не выбраны?

А что, вписывать нельзя?

Цитата legolas, Вт, 21.07.2015, 23:09:09
Если можно готовое решение, моск уже не думает.

Я, блин, вообще не понимаю что у вас тут написано.. муть какая-то..

Цитата legolas, Вт, 21.07.2015, 23:09:09
Скрипт меняет поле $OTHER4$ на инпут и селект.
val инпута = выбор селекта.

Во первых, зачем “менять” инпут на инпут и селект, а потом проставлять значения, если можно просто добавить к импуту селект?
Это:
Код
(function(){    
$('#addEntForm .manFlOth4').after('<br><select id="bdrd" multiple>'+DIRECTOR+'</select>');    
})();

идентично этому:
Код
(function(){    
var s=$('#addEntForm .manFlOth4'),l=s.val();    
s.replaceWith('<input type="text" id="bdF16" class="manFlOth4" style="width:100%" name="other4"><br><select id="bdrd" multiple>'+DIRECTOR+'</select>');    
$('#addEntForm .manFlOth4').val(l);      
})();

только без лишних телодвижений..

Цитата legolas, Вт, 21.07.2015, 23:09:09
На странице редактирования скрипт возвращает значения из инпута обратно в селект.
Код
$(document).ready(function(){    
var s='';    
$('#bdF16').each(function(){    
s+=this.value+',';    
});    
          
$('#addEntForm #bdM45 input').each(function(){    
if(s.indexOf($(this).next().html())!=-1)    
this.checked=true;    
});    
});

Где он возвращает?

Цитата legolas, Вт, 21.07.2015, 23:09:09
$('#addEntForm #bdM45 input').each(function(){
if(s.indexOf($(this).next().html())!=-1)
this.checked=true;

Это вообще что?
Проходимся циклом по инпутам, и, если текст в $('#bdF16') найден в том, что находится в следующем элементе после $('#addEntForm #bdM45 input'), то инпуту (!!! type="text") ставим значение checked=true ...
Это для чего?
У инпута типа текст нет атрибута checked..


 
Дата: Среда, 22.07.2015, 02:15 |
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Ну так вы же этот скрипт писали
Цитата
Цитата (Аntideath, Пт, 20.09.2013, 09:24:48)
а на самом деле эти поля служили бы для хранения значений данных одного фильтра.

- То бишь, у вас фильтр с множественным выбором - чекбоксы?
А если выбрано не два значения, а 25 например?

Но, примерно вот так:
При добавлении, заполняем поля значениями выбранных чекбоксов:
Код
<script type="text/javascript">
$('#addEntForm').submit(function(){
var a=['#bdF14','#bdF15','#bdF16','#bdF17'];
$('div.filterBlock input:checked',this).each(function(i){
$(a[i]).val($(this).next().html());
});
});
</script>


..

А при редактировании, наоборот:
Код
<script type="text/javascript">
$(document).ready(function(){
var s='';
$('#bdF14,#bdF15,#bdF16,#bdF17').each(function(){
s+=this.value+',';
});
$('#addEntForm div.filterBlock input').each(function(){
if(s.indexOf($(this).next().html())!=-1)
this.checked=true;
});
});
</script>


..


У меня поле OTHER4 это и инпут и чек бокс, с моим скриптом применяются только значения выбранные из чек бокса, они же отображаются в инпуте ($('#addEntForm .manFlOth4').val(l); - где l выбранные значения чек бокса, т.е. принудительно инпут берет только значения чек бокса), а нужно чтобы и в поле инпут можно было их вписать и эти значения применялись или выбирались бы в чек боксе.


 
Дата: Среда, 22.07.2015, 04:10 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


legolas,
Цитата legolas, Ср, 22.07.2015, 02:15:44
Ну так вы же этот скрипт писали

Вы видите ЧТО я писАл?
Код
$('#addEntForm div.filterBlock input').each(function(){

В .filterBlock что расположено? Список импутов типа чекбокс! А после него идет лейбл, так вот:
Код
if(s.indexOf($(this).next().html())!=-1)

$(this).next().html() - это и есть текст в лейбле.

А у вас:
Код
$('#addEntForm #bdM45 input').each(function(){

..

Цитата legolas, Ср, 22.07.2015, 02:15:44
У меня поле OTHER4 это и инпут и чек бокс

Вы не совсем понимаете как работают формы.
Форма берет значение по имени поля - атрибуту name.
Если полей с одинаковым именем будет больше одного, то возьмутся значение только одного из полей - последнего.

Цитата legolas, Ср, 22.07.2015, 02:15:44
а нужно чтобы и в поле инпут можно было их вписать и эти значения применялись

Вот я и спрашиваю - почему нельзя просто вписать?
Поле именованное, значение сохранится независимо от того будет стоять галочки в чекбоксах или нет..

Цитата legolas, Ср, 22.07.2015, 02:15:44
можно было их вписать и эти значения применялись или выбирались бы в чек боксе.

Как понять “выбирались бы в чек боксе”, если вы сами написали, что их там нет.. Что выбирать?
Цитата legolas, Вт, 21.07.2015, 23:09:09
Как сделать, чтобы можно было вписывать значения в инпут если значения селекта не выбраны?

А если есть, то почему они не выбраны?

Для чего тогда вообще этот скрипт, если значения нужно вписывать руками?
Я что-то не догоняю.. сриншоты, что ли, предоставьте .. или опишите как-нибудь попроще..


 
Дата: Среда, 22.07.2015, 21:37 |
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Привет. Не знаю уж как это все обьяснить, попробую.
Вобщем это поле выбора актеров, для удобства сделал select смножественным выбором и input в нем отображаются актеры выбранные с помощью select. После выбора актеров они потом прописываются еще и в поле теги. Однако, бывает удобно выбирать из select , а бывает удобно просто скопировать. Так вот, когда вставляешь в поле input значения передаются в поле теги, но не выводятся на странице материала, т. к. значение input
берется только из выбранных в select актеров. Если актеры не выбраны в select, то вписывание их в поле input не дает никаких результатов.
Картинка правда не очень.

Добавлено (22.07.2015, 12:41)
---------------------------------------------
Я все понял, проблема моя в этом скрипте, я про него забыл

Код
$(document).ready(function(){
var ArrId = [ "#bdM42" ];  
for (var u = 0; u < ArrId.length; u++) {  
$(ArrId[u]).change(function(){  
var ArrTag = [];  
document.getElementById('bdF15').value='';  
for (var u = 0; u < ArrId.length; u++) {  
var title = $(ArrId[u]).html().split(' ');
var w=[];  
$('#bdM42 option:selected').each(function(){  
w.push($(this).html());  
});  
for (var y = 0; y < title.length; y++) {  
if (title[y].length > 1) {  
if (ArrTag.indexOf(title[y]) == -1) {  
$("#bdF15").val((w));  
ArrTag.push(title[y]);  
}  
}  
}  
}  
});  
}  
});


Он вписывает выбранные с помощью селекта значения в текстовое поле . Поэтому и неработает вписывание в само поле без выбора из селекта.

Добавлено (22.07.2015, 12:47)
---------------------------------------------
Нужно создать условие, если идет выбор значений из селекта, то добавлять к вписанным значениям в поле.

Добавлено (22.07.2015, 21:37)
---------------------------------------------
Как сделать?

 
Дата: Четверг, 23.07.2015, 00:55 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Цитата legolas, Ср, 22.07.2015, 21:37:56
Если актеры не выбраны в select, то вписывание их в поле input не дает никаких результатов.

Почему вы так думаете?
Цитата likbezz, Ср, 22.07.2015, 04:10:43
Форма берет значение по имени поля - атрибуту name.

Цитата legolas, Вт, 21.07.2015, 23:09:09
s.replaceWith('<input type="text" id="bdF16" class="manFlOth4" style="width:100%" name="other4"><br><select id="bdrd" multiple>'+DIRECTOR+'</select>');

- в дополнительном поле 4 будет то значение, которое в него добавили.

Цитата legolas, Ср, 22.07.2015, 21:37:56
Я все понял, проблема моя в этом скрипте, я про него забыл
Он вписывает выбранные с помощью селекта значения в текстовое поле .

А как этот скрипт влияет на поле? оно в нем даже не упоминается..

Цитата legolas, Ср, 22.07.2015, 21:37:56
Как сделать?

Найти тот момент в скрипте, когда в поле попадает значение из селекта, и проверить до этого действия, значение есть или нет, если есть - добавить в поле, если нет - не добавлять..
Как-то так, я думаю..


 
Дата: Четверг, 23.07.2015, 03:42 |
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Цитата
Почему вы так думаете?


Потому что вписываю и при переходе на другое поле значение исчезает.

Цитата
А как этот скрипт влияет на поле? оно в нем даже не упоминается..


Как же не упоминается #bdF15 и еще #bdF16 такой же скрипт.
И если его убрать, то поле работает, но если выбираешь значения в select? то они не передаются в это поле.
Потому что, этот скрипт выбранные значения туда заносит и соответственно если ни одно значение не выбрано, то и поле в итоге остается пустым.

Цитата
- в дополнительном поле 4 будет то значение, которое в него добавили.


Да но у селекта нет имени OTHER4, а его значения и передаются в поле этим скриптом:
Код
$(document).ready(function(){
var ArrId = [ "#bdF15" ];  
for (var u = 0; u < ArrId.length; u++) {  
$(ArrId[u]).change(function(){  
var ArrTag = [];  
document.getElementById('bdF15').value='';  
for (var u = 0; u < ArrId.length; u++) {  
var title = $(ArrId[u]).html().split(' ');
var w=[];  
$('#bdM42 option:selected').each(function(){  
w.push($(this).html());  
});  
for (var y = 0; y < title.length; y++) {  
if (title[y].length > 1) {  
if (ArrTag.indexOf(title[y]) == -1) {  
$("#bdM42").val((w));  
ArrTag.push(title[y]);  
}  
}  
}  
}  
});  
}  
});


Итог:
в этом скрипте нужно как то убрать распознавание количества символов в поле
И сделать что то типо этого:
вместо
$("#bdM42").val((w));
вот это
$("#bdM42").val($('#bdF15').val() + ', ' +(w));
Цитата
Найти тот момент в скрипте, когда в поле попадает значение из селекта, и проверить до этого действия, значение есть или нет, если есть - добавить в поле, если нет - не добавлять..
Как-то так, я думаю..

Если можно, готовое решение пожалуйста, сам не смогу сделать.

Добавлено (23.07.2015, 03:38)
---------------------------------------------
А как создать условие, если значения не выбраны в #bdM42 option:selected,
то этот скрипт который выше не передает значения в поле #bdF15 или вообще не срабатывает?

Добавлено (23.07.2015, 03:42)
---------------------------------------------
Типа этого if($('#bdM42 option').selected=true){...}

 
Дата: Четверг, 23.07.2015, 07:05 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


legolas,
Цитата legolas, Чт, 23.07.2015, 03:42:37
Потому что вписываю и при переходе на другое поле значение исчезает.

Это совсем не то, что вы написали:
Цитата legolas, Ср, 22.07.2015, 21:37:56
Если актеры не выбраны в select, то вписывание их в поле input не дает никаких результатов

- следовательно, у вас еще что-то висит на этом поле - какой-либо скрипт обрабатывающий onchange или onblur.
Там и надо искать:
Цитата likbezz, Чт, 23.07.2015, 00:55:21
Найти тот момент в скрипте, когда в поле попадает значение из селекта, и проверить до этого действия, значение есть или нет, если есть - добавить в поле, если нет - не добавлять..

в приведенных вами - я такого не наблюдаю..
---

Цитата legolas, Чт, 23.07.2015, 03:42:37
Как же не упоминается #bdF15 и еще #bdF16 такой же скрипт.

Где у вас упоминается #bdF16 ? Кроме как вот тут:
Цитата legolas, Вт, 21.07.2015, 23:09:09
(function(){
var s=$('#addEntForm .manFlOth4'),l=s.val();
s.replaceWith('<input type="text" id="bdF16" class="manFlOth4" style="width:100%" name="other4"><br><select id="bdrd" multiple>'+DIRECTOR+'</select>');
$('#addEntForm .manFlOth4').val(l);
})();

и вот тут?
Цитата legolas, Вт, 21.07.2015, 23:09:09
$(document).ready(function(){
var s='';
$('#bdF16').each(function(){
s+=this.value+',';
});
$('#addEntForm #bdM45 input').each(function(){
if(s.indexOf($(this).next().html())!=-1)
this.checked=true;
});
});

? - Нигде.
А эти скрипты работают на документ реди, то бишь один раз - при загрузке страницы.
Они никак не влияют на то, что текст пропадает из поля.

Цитата legolas, Чт, 23.07.2015, 03:42:37
А как создать условие, если значения не выбраны в #bdM42 option:selected,
то этот скрипт который выше не передает значения в поле #bdF15 или вообще не срабатывает?

Код
if($('#bdM42 option:selected').size()){
...что-то делаем...
};


Цитата legolas, Чт, 23.07.2015, 03:42:37
И сделать что то типо этого:
вместо
$("#bdM42").val((w));
вот это
$("#bdM42").val($('#bdF15').val() + ', ' +(w));

у меня это в голове не укладывается..
С одной стороны, по идее, bdM42 - это селект.. с другой стороны, вы хотите в него впихнуть строку..
Я сдаюсь..


 
Дата: Четверг, 23.07.2015, 10:34 |
Сержант
Группа: Проверенные
Сообщений: 26
Награды: 0
Репутация: 0
Статус: Offline


Привет. Я просто не правильно или не понятно объясняю.
В общем у меня 2 скрипта, один меняет значение в поле #bdF15, а второй в поле #bdF16.
Будем разбираться на примере #bdF16, дабы не путаться.

Первый скрипт меняет поле .manFlOth4 на два input и select:
Код

(function(){  
var s=$('#addEntForm .manFlOth4'),l=s.val();  
s.replaceWith('<input type="text" id="[color=orange]bdF16[/color]" class="[color=orange]manFlOth4[/color]" style="width:100%" name="other4"><br><select id="[color=orange]bdrd[/color]" multiple>'+DIRECTOR+'</select>');  
$('#addEntForm .manFlOth4').val(l);  
})();


Второй скрипт передает выбранные в select значения в поле #bdF16.
#bdM45 в нем находятся #bdF16(input) и #bdrd(select).
Там же присутствует .change(function(){
Да, там $(document).ready, но input меняется при каждом новом выборе из select.(Если этот скрипт удалить, то поле #bdF16 работает, можно вписывать и значение применяется(не исчезает), но если выбирать значения в select они не применяются никуда.)
Код

$(document).ready(function(){  
var ArrId = [ "#bdF16" ];   
for (var u = 0; u < ArrId.length; u++) {   
$(ArrId[u]).change(function(){   
var ArrTag = [];   
document.getElementById('bdF16').value='';   
for (var u = 0; u < ArrId.length; u++) {   
var title = $(ArrId[u]).html().split(' ');  
var w=[];   
$('#bdM45 option:selected').each(function(){   
w.push($(this).html());   
});   
for (var y = 0; y < title.length; y++) {   
if (title[y].length > 1) {   
if (ArrTag.indexOf(title[y]) == -1) {   
$("#bdM42").val((w));   
ArrTag.push(title[y]);   
}   
}   
}   
}   
});   
}   
});


А третий скрипт работает только на странице редактирования, как я понимаю он значения из input переносит в select.
Код
$(document).ready(function(){  
var s='';  
$('#bdF16').each(function(){  
s+=this.value+',';  
});  
$('#addEntForm #bdM45 input').each(function(){  
if(s.indexOf($(this).next().html())!=-1)  
this.checked=true;  
});  
});


А сдаваться не надо, выход всегда есть.


 
Дата: Четверг, 23.07.2015, 16:27 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


legolas,
Цитата legolas, Чт, 23.07.2015, 10:34:45
Если этот скрипт удалить, то поле #bdF16 работает, можно вписывать и значение применяется(не исчезает), но если выбирать значения в select они не применяются никуда.)

Вот в этом скрипте и нужно
Цитата likbezz, Чт, 23.07.2015, 07:05:38
значение есть или нет, если есть - добавить в поле, если нет - не добавлять..


Цитата legolas, Чт, 23.07.2015, 10:34:45
document.getElementById('bdF16').value='';

Вот это убрать вообще,
А в том месте, где выбранное из селекта попадает с инпут (я такого не нашел) поставить условие, типа - если то, что попадает не пустое, то вставить в импут, если пустое, то нет.


 
Скрипты и коды для юкоз - Форум аццкого кодера » Вопросы по верстке, дизайну, управлению и настройки модулей СMS от uCoz » Как сделать... Тема только по сайтам в системе uCoz » Cкрипт подгрузки кода из другого файла? JavaScript (Сделать option в столбец и скрипт работал)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:


Мобильная версия