Jump to content
php.lv forumi

javascript - clone vai tml.


renathy

Recommended Posts

Ir sekojosha struktura:

 <div id="steps">	
<div id="step1">
           <h3>STEP-1</h3>
    ...					
    <a onclick="remove_this_step('1'); ">Remove this step</a>
</div>
 </div>
 <a onclick="add_next_step(); ">Add next step</a>

 

Taatad te ir divas pogas - "remove_this_step" un "add_next_step".

 

Ja spiezh uz "add_next_step", tad vajadzetu noklonet esosho div-u "step1" un nomainit jaunieguta klona id uz "step2". Ja velreiz spiezh uz pogu "add_next_step", tad tur paraditos "step3" utt. Shis solis sanaak teiksim:

 

 $('#step1').clone().attr('id', newid).appendTo('#steps'); 

kur newid - tiek noteikts, teiksim, izmantojot kadu globalo mainigo step_count, kas katru reizi palielinas par 1.

 

Tachu neizdodas sekojoshais:

- katru reizi pie pogas "add_next_step" vajadzetu veel arii nomainiit virsrakstu, piemeram, bija

<h3>STEP-1</h3>, tagad bus <h3>STEP-2</h3> utt.

 

- poga "remove_this_step" izdzesh tekosho soli - tai vajadzetu no DOM koka izmest attiecigo div-u. Pashu izmeshanu vel kaut kaa vareetu izdomaat, ja vien buutu zinaams div-a id, kuru izmest. Teiksim, saakumaa jaaizsauc remove_this_step('1') un tad jaaizmed <div id="step1" ...>. Tachu kaa izdariit, lai pie pogas "add_next_step" pie funkcijas izsaukuma <a onclick="remove_this_step('1'); ">... funkcijai iekavaas paraadiitos atbilstoshais numurs.

Edited by renathy
Link to comment
Share on other sites

var e = $("#step1").clone().attr("id", newid).appendTo("#steps"); // jaunā div'a reference
$("h3", e).text(newid); // tālāk viss kā parasti

Dzēšanu ieteiktu organizēt eventu bindošanu, nevis inline js - vairs nebūs tādu problēmu kā šobrīd :)

$(function(){
// eventu bindojam uz <a class="delete"...
// lietojam live, lai pēc dom izmaiņām nevajadzētu šo darīt vēlreiz
$("#steps a.delete").live("click", function(){
	var id = $(this).parents("div:first").attr("id").substr(4); // pieņemu, ka esmu atradis <div id="step*"...
	// etc
	return false;
});
});

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...