Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.01.2016, 10:32
Аспирант
Отправить личное сообщение для malsyst Посмотреть профиль Найти все сообщения от malsyst
 
Регистрация: 20.07.2012
Сообщений: 80

Можно ли скриптом подставлять код типа?
Привет всем. Нужна помощь. Есть следующая разметка:
<ul class="nav nav-tabs">
  <li class="active"><a href="#home" data-toggle="tab">Home</a></li>
  <li><a href="#profile" data-toggle="tab">Profile</a></li>

</ul>


<div class="tab-content">
    <div class="tab-pane fade in active" id="tab-1">
<h2> Home </h2>
        <p>Raw denim you probably haven't...</p>
    </div>
    <div class="tab-pane fade" id="tab-2">
<h2> Profile </h2>
        <p>Food truck fixie locavore, accus...</p>
    </div>
    ...
</div>


Этот код присутствует на сервере:
<div class="tab-content">
    <div class="tab-pane fade in active" id="tab-1">
<h2> Home </h2>
        <p>Raw denim you probably haven't...</p>
    </div>
    <div class="tab-pane fade" id="tab-2">
<h2> Profile </h2>
        <p>Food truck fixie locavore, accus...</p>
    </div>
    ...
</div>

И добавляется аналогичным образом по мере необходимости в блок tab-content разметка:
<div class="tab-pane fade" id="tab-3">
<h2> News </h2>
        <p>Food truck fixie locavore, accus...</p>
    </div>



Можно ли скриптом подставлять код перед блоком tab-content типа?:
<ul class="nav nav-tabs">
  <li class="active"><a href="#tab-1" data-toggle="tab">Home</a></li>
  <li><a href="#tab-2" data-toggle="tab">Profile</a></li>
…
</ul>


Последний раз редактировалось malsyst, 22.01.2016 в 11:11.
Ответить с цитированием
  #2 (permalink)  
Старый 22.01.2016, 11:13
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

malsyst,
http://api.jquery.com/append/
append
appendTo
prepend
prepandTo
тебе в помощь. разница в месте подстановки и возвращаемом объекте.

как пример:
$( "<ul class='nav nav-tabs'><li class='active'><a href='#tab-1' data-toggle='tab'>Home</a></li><li><a href='#tab-2' data-toggle='tab'>Profile</a></li>…</ul>" ).prependTo( $( ".tab-content" ));
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2016, 11:54
Аспирант
Отправить личное сообщение для malsyst Посмотреть профиль Найти все сообщения от malsyst
 
Регистрация: 20.07.2012
Сообщений: 80

Siend,Функции изучил. Но подскажите, пожалуйста, как заставить скрипт добавлять эти элементы
<li><a href='#tab-1' data-toggle='tab'>Home</a></li>
, где 1 номер таба, а Номе – содержимое .title-tab

Вот пример - https://jsfiddle.net/c30rbb6c/13/
Ответить с цитированием
  #4 (permalink)  
Старый 22.01.2016, 11:56
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

malsyst,
добавлять куда? я помогу, для этого мне надо понять с чем помогать)
Ответить с цитированием
  #5 (permalink)  
Старый 22.01.2016, 12:05
Аспирант
Отправить личное сообщение для malsyst Посмотреть профиль Найти все сообщения от malsyst
 
Регистрация: 20.07.2012
Сообщений: 80

Siend,
Нужно создать вначале следующую разметку:
<ul class='nav nav-tabs'>

</ul>

Перед . tab-content

Затем в эту разметку
Добавлять элементы li с ссылкой на id табов и названием из .title-tab

<li><a href='#tab-2' data-toggle='tab'>Profile</a></li>


Вот пример - https://jsfiddle.net/c30rbb6c/13/
Ответить с цитированием
  #6 (permalink)  
Старый 22.01.2016, 12:30
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

<html>
<head>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<div id="parrent">
    <div class="tab-content">
        <div class="tab-pane fade in active" id="tab-1">
        <h2 class="title-tab"> TEST-1</h2>
        <p>SomeText SomeText SomeText SomeText</p>
    </div>

    <div class="tab-content">
        <div class="tab-pane fade in active" id="tab-2">
        <h2 class="title-tab"> TEST-2</h2>
        <p>SomeText SomeText SomeText SomeText</p>
    </div>

</div>

<script>
var l = $(".tab-content").length-1
for (var i=l; i>=0; i--){
$("<ul class='nav nav-tabs'><li><a href='#"+$($(".tab-content")[i]).find(".tab-pane").attr("id")+"' data-toggle='tab'>"+$($(".tab-content")[i]).find(".title-tab").html()+"</a></li></ul>").prependTo($("#parrent"))
}
</script>
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 22.01.2016, 13:15
Аспирант
Отправить личное сообщение для malsyst Посмотреть профиль Найти все сообщения от malsyst
 
Регистрация: 20.07.2012
Сообщений: 80

Siend,
Спасибо, но нужна немного другая структура:


<div id="parrent">
	<div class="tab-content">
		<div class="tab-pane fade in active" id="tab-1">
			<h2 class="title-tab"> TEST-1</h2>
			<p>SomeText SomeText SomeText SomeText</p>
		</div><!--/.tab-pan-->


		<div class="tab-pane fade" id="tab-2">
			<h2 class="title-tab"> TEST-2</h2>
			<p>SomeText SomeText SomeText SomeText</p>
		</div><!--/.tab-pan-->
	</div><!--/.tab-content-->
</div><!--#parrent-->


Помогите уже доделать.

Последний раз редактировалось malsyst, 22.01.2016 в 13:18.
Ответить с цитированием
  #8 (permalink)  
Старый 22.01.2016, 13:22
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

<html>
<head>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<div id="parrent">
    <div class="tab-content">
        <div class="tab-pane fade in active" id="tab-1">
        <h2 class="title-tab"> TEST-1</h2>
        <p>SomeText SomeText SomeText SomeText</p>
		</div>

        <div class="tab-pane fade in active" id="tab-2">
        <h2 class="title-tab"> TEST-2</h2>
        <p>SomeText SomeText SomeText SomeText</p>
		</div>
	</div>
</div>

<script>
var l = $(".tab-pane").length-1
for (var i=l; i>=0; i--){
$("<ul class='nav nav-tabs'><li><a href='#"+$($(".tab-pane")[i]).attr("id")+"' data-toggle='tab'>"+$($(".tab-pane")[i]).find(".title-tab").html()+"</a></li></ul>").prependTo($("#parrent"))
}
</script>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 22.01.2016, 13:48
Аспирант
Отправить личное сообщение для malsyst Посмотреть профиль Найти все сообщения от malsyst
 
Регистрация: 20.07.2012
Сообщений: 80

Siend, Проблема в том, что создается несколько ul, а должен быть один. Я уже по аналогии попытался доделать, но пришлось вынести пустой блок

<ul class="nav nav-tabs"></ul>


<html>
<head>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<div id="parrent">

<ul class="nav nav-tabs">

</ul>

    <div class="tab-content">
        <div class="tab-pane fade in active" id="tab-1">
        <h2 class="title-tab"> TEST-1</h2>
        <p>SomeText SomeText SomeText SomeText</p>
		</div>

        <div class="tab-pane fade in active" id="tab-2">
        <h2 class="title-tab"> TEST-2</h2>
        <p>SomeText SomeText SomeText SomeText</p>
		</div>
	</div>
</div>

<script>
var l = $(".tab-pane").length-1
for (var i=l; i>=0; i--){
$("<li><a href='#"+$($(".tab-pane")[i]).attr("id")+"' data-toggle='tab'>"+$($(".tab-pane")[i]).find(".title-tab").html()+"</a></li>").prependTo($(".nav-tabs"))
}
</script>
</body>
</html>



Скажете, а можно его тоже вначале создать как-нибудь?
Вот пример - https://jsfiddle.net/c30rbb6c/18/

Последний раз редактировалось malsyst, 22.01.2016 в 13:56.
Ответить с цитированием
  #10 (permalink)  
Старый 22.01.2016, 13:52
Профессор
Отправить личное сообщение для Siend Посмотреть профиль Найти все сообщения от Siend
 
Регистрация: 04.02.2012
Сообщений: 196

malsyst,
не понял? я спецом сделал тебе чтобы создавалась столько блоков, сколько у тебя табов. если тебе нужно чтобы создавался допустим один по клику, то держи:
<html>
<head>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
 
<div id="parrent">
    <div class="tab-content">
        <div class="tab-pane fade in active" id="tab-1">
        <h2 class="title-tab"> TEST-1</h2>
        <p>SomeText SomeText SomeText SomeText</p>
        </div>
 
        <div class="tab-pane fade in active" id="tab-2">
        <h2 class="title-tab"> TEST-2</h2>
        <p>SomeText SomeText SomeText SomeText</p>
        </div>
    </div>
</div>
 
<script>
$(".tab-pane").css({"background-color":"blue"})

$(".tab-pane").click(function(e){
$("#addedItem").remove();
$("<ul class='nav nav-tabs' id='addedItem'><li><a href='#"+$(this).attr("id")+"' data-toggle='tab'>"+$(this).find(".title-tab").html()+"</a></li></ul>").prependTo($("#parrent"))
})


</script>
</body>
</html>

кликай по синим панелькам.

Последний раз редактировалось Siend, 22.01.2016 в 13:56.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как еще можно уменшить код? DoubleShot jQuery 7 17.07.2011 13:31
Как можно подменить CSS-стиль скриптом JavaScript vobbl Общие вопросы Javascript 1 26.01.2011 02:22
Подскажите плизз как можно упростить код frolvict Общие вопросы Javascript 19 08.04.2010 14:23
Подменю на сайте, можно ли как-нибудь упрастить код? Shanks Общие вопросы Javascript 5 16.03.2009 07:03
JavaScript + Сканер. Можно его запустить скриптом? bavin Общие вопросы Javascript 5 10.12.2008 17:00