2012-04-26 3 views
0

У меня есть функция при вводе изменений, она работает для первого ввода, который уже существует, но когда jscript добавляет другую
Входной объект с appendTo, эта же функция does'nt работает .. .appendTo объекты не принимают действие при изменении jQuery

$("input[type=file]").change(function() { 
$('<input name="fails[]" type="file" />').appendTo('#input_lauki'); 
$('<a href="#" onclick="dzest(this);return false" class="link" name="dzest" style="font-weight:normal; display:inline;">Izdzēst</a><br/>').appendTo('#input_lauki') 
$('.link').css('display','inline'); 

}); 

Спасибо!

ответ

0

Вы должны использовать $.on связать новые элементы, добавленные в DOM, а также:

$.on("change", "input[type=file]", function() { 
    $('<input name="fails[]" type="file" />').appendTo('#input_lauki'); 
    $('<a href="#" onclick="dzest(this);return false" class="link" name="dzest" style="font-weight:normal; display:inline;">Izdzēst</a><br/>').appendTo('#input_lauki') 
    $('.link').css('display','inline'); 

}); 

или live, если вы используете старую версию JQuery, так как он имеет некоторые специальную обработку, что вы должны прочитать о в документах.

+0

$ .он должен быть применен к выбранному элементу: пример следует читать '$ ('# input_lauki ') .on (' change ',' input [type = file] '' –

-1

Вы можете попробовать

$('input[type=file]').on('change',function(){ 

//your code 


}); 
+0

' live' устарел на новую версию jquery. вы должны использовать 'on()' вместо – fcalderan

0

когда вы определили обработчик события изменения вы имели определенное количество входного файла, поэтому новый вход вставки позже не имеет обработчика, определенный для этого события.

вместо него вы должны захватить событие родителю #input_lauki

$("#input_lauki").on('change', 'input[type=file]', function() { 
... 
} 

пример скрипку: http://jsfiddle.net/TwWEt/