Cкрипт подгрузки кода из другого файла? JavaScript
|
|
[16] likbezz [27.06.2015, 15:17] |
legolas, Как сделать, чтобы содержимое блока открывалось после исполнения скрипта? Поставить функцию открытия блока после исполняемого скрипта. |
|
[17] legolas [01.07.2015, 15:16] |
Привет, не получается вывести рейтинг в результатах поиска Код <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) --------------------------------------------- Все, сам разобрался. |
|
[18] likbezz [02.07.2015, 20:51] |
legolas, вот это: замечательно) |
|
[19] legolas [06.07.2015, 10:56] |
Привет, помоги вытащить значение 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> |
|
[20] likbezz [06.07.2015, 12:52] |
legolas, Привет, помоги вытащить значение css. Добрый) .css() для JQ или currentStyle + getComputedStyle на чистом JS |
|
[21] legolas [21.07.2015, 23:09] |
Привет. Уже всю голову сломал. Напомню: Скрипт меняет поле $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] likbezz [22.07.2015, 00:53] |
legolas, На странице редактирования скрипт возвращает значения из инпута обратно в селект. Код var s=''; $('#bdF16').each(function(){ s+=this.value+','; }); Ой, как стремно.. а что, так не работает: Код var s=$('#bdF16').val()+',';
Как сделать, чтобы можно было вписывать значения в инпут если значения селекта не выбраны? А что, вписывать нельзя?
Если можно готовое решение, моск уже не думает. Я, блин, вообще не понимаю что у вас тут написано.. муть какая-то..
Скрипт меняет поле $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); })(); только без лишних телодвижений..
На странице редактирования скрипт возвращает значения из инпута обратно в селект. Код $(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; }); }); Где он возвращает?
$('#addEntForm #bdM45 input').each(function(){ if(s.indexOf($(this).next().html())!=-1) this.checked=true; Это вообще что? Проходимся циклом по инпутам, и, если текст в $('#bdF16') найден в том, что находится в следующем элементе после $('#addEntForm #bdM45 input'), то инпуту (!!! type="text") ставим значение checked=true ... Это для чего? У инпута типа текст нет атрибута checked.. |
|
[23] legolas [22.07.2015, 02:15] |
Ну так вы же этот скрипт писали Цитата Цитата (А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 выбранные значения чек бокса, т.е. принудительно инпут берет только значения чек бокса), а нужно чтобы и в поле инпут можно было их вписать и эти значения применялись или выбирались бы в чек боксе. |
|
[24] likbezz [22.07.2015, 04:10] |
legolas, Ну так вы же этот скрипт писали Вы видите ЧТО я писАл? Код $('#addEntForm div.filterBlock input').each(function(){ В .filterBlock что расположено? Список импутов типа чекбокс! А после него идет лейбл, так вот: Код if(s.indexOf($(this).next().html())!=-1) $(this).next().html() - это и есть текст в лейбле.
А у вас: Код $('#addEntForm #bdM45 input').each(function(){ ..
У меня поле OTHER4 это и инпут и чек бокс Вы не совсем понимаете как работают формы. Форма берет значение по имени поля - атрибуту name. Если полей с одинаковым именем будет больше одного, то возьмутся значение только одного из полей - последнего.
а нужно чтобы и в поле инпут можно было их вписать и эти значения применялись Вот я и спрашиваю - почему нельзя просто вписать? Поле именованное, значение сохранится независимо от того будет стоять галочки в чекбоксах или нет..
можно было их вписать и эти значения применялись или выбирались бы в чек боксе. Как понять “выбирались бы в чек боксе”, если вы сами написали, что их там нет.. Что выбирать? Как сделать, чтобы можно было вписывать значения в инпут если значения селекта не выбраны? А если есть, то почему они не выбраны?
Для чего тогда вообще этот скрипт, если значения нужно вписывать руками? Я что-то не догоняю.. сриншоты, что ли, предоставьте .. или опишите как-нибудь попроще.. |
|
[25] legolas [22.07.2015, 21:37] |
Привет. Не знаю уж как это все обьяснить, попробую. Вобщем это поле выбора актеров, для удобства сделал 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) --------------------------------------------- Как сделать? |
|
[26] likbezz [23.07.2015, 00:55] |
Если актеры не выбраны в select, то вписывание их в поле input не дает никаких результатов. Почему вы так думаете? Форма берет значение по имени поля - атрибуту name. s.replaceWith('<input type="text" id="bdF16" class="manFlOth4" style="width:100%" name="other4"><br><select id="bdrd" multiple>'+DIRECTOR+'</select>'); - в дополнительном поле 4 будет то значение, которое в него добавили.
Я все понял, проблема моя в этом скрипте, я про него забыл Он вписывает выбранные с помощью селекта значения в текстовое поле . А как этот скрипт влияет на поле? оно в нем даже не упоминается..
Найти тот момент в скрипте, когда в поле попадает значение из селекта, и проверить до этого действия, значение есть или нет, если есть - добавить в поле, если нет - не добавлять.. Как-то так, я думаю.. |
|
[27] legolas [23.07.2015, 03:42] |
Цитата Почему вы так думаете?
Потому что вписываю и при переходе на другое поле значение исчезает.
Цитата А как этот скрипт влияет на поле? оно в нем даже не упоминается..
Как же не упоминается #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){...} |
|
[28] likbezz [23.07.2015, 07:05] |
legolas, Потому что вписываю и при переходе на другое поле значение исчезает. Это совсем не то, что вы написали: Если актеры не выбраны в select, то вписывание их в поле input не дает никаких результатов - следовательно, у вас еще что-то висит на этом поле - какой-либо скрипт обрабатывающий onchange или onblur. Там и надо искать: Найти тот момент в скрипте, когда в поле попадает значение из селекта, и проверить до этого действия, значение есть или нет, если есть - добавить в поле, если нет - не добавлять.. в приведенных вами - я такого не наблюдаю.. ---
Как же не упоминается #bdF15 и еще #bdF16 такой же скрипт. Где у вас упоминается #bdF16 ? Кроме как вот тут: (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; }); }); ? - Нигде. А эти скрипты работают на документ реди, то бишь один раз - при загрузке страницы. Они никак не влияют на то, что текст пропадает из поля.
А как создать условие, если значения не выбраны в #bdM42 option:selected, то этот скрипт который выше не передает значения в поле #bdF15 или вообще не срабатывает? Код if($('#bdM42 option:selected').size()){ ...что-то делаем... };
И сделать что то типо этого: вместо $("#bdM42").val((w)); вот это $("#bdM42").val($('#bdF15').val() + ', ' +(w)); у меня это в голове не укладывается.. С одной стороны, по идее, bdM42 - это селект.. с другой стороны, вы хотите в него впихнуть строку.. Я сдаюсь.. |
|
[29] legolas [23.07.2015, 10:34] |
Привет. Я просто не правильно или не понятно объясняю. В общем у меня 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; }); });
А сдаваться не надо, выход всегда есть. |
|
[30] likbezz [23.07.2015, 16:27] |
legolas, Если этот скрипт удалить, то поле #bdF16 работает, можно вписывать и значение применяется(не исчезает), но если выбирать значения в select они не применяются никуда.) Вот в этом скрипте и нужно значение есть или нет, если есть - добавить в поле, если нет - не добавлять..
document.getElementById('bdF16').value=''; Вот это убрать вообще, А в том месте, где выбранное из селекта попадает с инпут (я такого не нашел) поставить условие, типа - если то, что попадает не пустое, то вставить в импут, если пустое, то нет. |
|