2013-10-30 19 views
0

我一直在製作這種表格,必須使後端用戶能夠爲用戶創建新的問題來回答。在第一個。(點擊)事件之後,表單被克隆並附加到div(選擇器#內容),但如果按下克隆按鈕,它將不會再次複製表單。應用於我的下拉選擇的.on(更改)事件確實會改變各個div的內容,但它僅適用於原始形式。爲什麼當事件變爲「true」時,我的JQuery函數沒有在克隆的元素上觸發?

這裏是jQuery代碼:

$(document).ready(function() { 
$('.addAnswer').on("click", function() { 
    var idx = $('#mp div[name^="antwoord"]:last').index() + 1; 
    $clone = $('#mp div[name^="antwoord"]:first').clone(true, true).attr('class', 'answer content_' + idx); 
    $('.removeAnswer').show; 
    $('#mp').append($clone); 
    $('.answer:last').each(function() { 
     $('b:last').empty(); 
     $('b:last').prepend(String.fromCharCode(64 + idx) + ". ") 
     $('.addAnswer').on("click", function() { 
      idx++; 
     }); 
    }); 
    if (idx == 2) { 
     $('.removeAnswer').show(); 
    } 
}); 

$('.nextq').click(function() { 
    var newqid = $('#content form:last').index() + 1; 
    $('.done, .nextq, .remove').hide(); 
    $('#content').append('<hr>'); 
    $('#content').append($('form').html()).attr('class', 'q_' + newqid); 
    $('.nextq').on("click", function() { 
     newqid++; 
    }); 
    $('.done:last, .nextq:last, .remove:last').show(); 
    return false; 
}); 

$('.group').hide(); 
$('#text:last').show(); 
$('.select:last').on("change", function() { 
    $('.group').hide(); 
    $('#' + $(this).val() + ':last').fadeIn(); 
    $('button.' + $(this).val() + ':last').fadeIn(); 
}); 
}); 

因爲我想張貼整個HTML模板將是一個稍微有點太多了,我提供了一個JSFiddle你的人。

對於那些情種的那些額外的一個問題:在jQuery代碼可以看出,在HTML的內容正在使用的.html()分析,並與.append附加(第33行上。 JSFiddle)由於.on(變更)函數切換它應該改變的部門的內容,.html()看到這些變化,並採取這些變化。我希望。(點擊)函數可以將div的內容追加到原始狀態,而不受後端用戶預先進行的更改的影響。任何與此有關的幫助將非常有用。

+1

你可以嘗試的負載,而不是在點擊克隆形式。然後你會得到一個你可以附加在點擊事件中的原始表單的副本。 – Matt

+0

那麼,我該怎麼做呢?我只是將已聲明的** $ clone **對象從函數中取出並放在**。ready()**中的代碼的頂部。我沒有理會! –

+0

是的,您唯一需要做的其他事情就是在您的onclick事件中克隆該克隆,請參閱這裏的小提琴示例。 http://jsfiddle.net/matt9388/8nM2a/ – Matt

回答

4

爲了對新元素的jQuery觸發,你會做這樣的事情

$(document).on("click", "<your id or class>", function() { 
    //Do stuff 
}); 
+0

這很好,但爲什麼? – Peon

+0

這是行得通的。你能解釋一下爲什麼 – Umanda

相關問題