2015-06-05 2 views
0

Я делаю проект файлов прикрепленных файлов, где мне нужно автоматически проверять имя файла, когда для присоединения есть только один файл. Легко проверить его как флажок, но когда он установлен, есть функция onclick, вызываемая для обновления файла на стороне сервера.Как автоматически запускать функцию onclick в динамически добавленном элементе HTML с помощью jQuery или JavaScript

Поскольку тег <input> динамически добавляется в зависимости от количества требуемых файлов прикрепления, .trigger('click') не работал над этим.

$.each(speedLetterArray, function (key, value) { 
    var idLine = fileId + '_b' + value.reasonCode; 
    var idContainer = 'sliC_f' + idLine; 
    var idItem = 'sli_f' + idLine; 
    output.push('<div style="' + cssDisplay + '" class="sliContainer" id="' + idContainer + '">'); 
    //auto checked if only one item 
    if (fileCount == speedLetterArray.length) { 
     value.isSelected = 'true'; 
    } 
    if (value.isSelected == 'true') { 
     output.push('<input id="' + idItem + '" onclick="updateSpeedLetterItemLists(this);" type="checkbox" name="' + idItem + '" value="' + value.reasonCode + '" class="testClass" style="margin:0px;" />'); 
    } else { 
     //some code here 
    } 
} 

Я использовал checked=checked для автоматической проверки файла, но не могу вызвать функцию OnClick updateSpeedLetterItemLists(this) для обновления файлов на стороне сервера. , который отлично работает, когда я вручную его нажимаю.

Я пробовал $(.sliContainer).find('input:checkbox:first').trigger('click'); после тега <input> или в $(document).ready, любой из них работает.

Я подумал, что, возможно, я не нашел нужный объект, так как использовал alert($(.sliContainer).find('input:checkbox:first').val()). Я получаю значение «неопределенное».

ответ

0

Вы могли бы сделать

$('yourelemtid').click() 

Или, поскольку она динамически добавляется

$("yourelemtid").live("click", function() { 

}); 

Поскольку элемент добавляется после начальной инициализации яваскрипта он не будет видеть ваши новые элементы, чтобы добавить крючки на ,

jQuery Doc for .live

+0

'$ ("документ") .он ("щелчок", "yourelementid", функция() { }); ' –

+0

спасибо за ваш ответ, но все, что мне нужно, это AUTO TRIGGER THE ONCLICK без щелчка элемента mannually, live или on используется только для привязки события click к элементу html, –

0

.live устарела, используйте:

$(document).on("click", "#yourelemtid", function() { 
    ... 
}); 
+0

спасибо, это то же самое, что и первый ответ, что Мне нужен автоматический запуск функции onclick без ручного нажатия. –

Смежные вопросы