James Hood
Top achievements
Rank 1
James Hood
asked on 11 Dec 2012, 11:30 PM
I am having an issue at work right now (in fact it's not just this control) I think that I am doing something wrong, as no one else seems to have this issue..
basically put I am using a jquery click event from an HTML button, then what happens in that area is code gets append (with .append()) but any code in that area I cannot seem to actually access via the kendo upload initializer thing
$('#upload_content').click(function () { $('#sideRight').append('<div class="fileupload" style="position:absolute;left:5%; top:35%;"><input id="file_upload" name="file_upload" type="file"></div>'
so would I actually initialize a proper upload control with that input field. I don't get any errors in Firefox, but any time I dynamically append any content (say on successful return of an ajax request) with the append function I cannot use any kendo controls (uploadify actually)
i know the code does work if I add an input control in just plain HTML in the body (without appending it with jquery) it works fine.
what am I DNA wrong? It's not like I am trying to use multiple upload controls, I will actually be using at least 3 on the page however, appended to 3 different click events, so in theory there will be multiple ones on the page..lol any help would be greatly appreciated
basically put I am using a jquery click event from an HTML button, then what happens in that area is code gets append (with .append()) but any code in that area I cannot seem to actually access via the kendo upload initializer thing
$('#upload_content').click(function () { $('#sideRight').append('<div class="fileupload" style="position:absolute;left:5%; top:35%;"><input id="file_upload" name="file_upload" type="file"></div>'
so would I actually initialize a proper upload control with that input field. I don't get any errors in Firefox, but any time I dynamically append any content (say on successful return of an ajax request) with the append function I cannot use any kendo controls (uploadify actually)
i know the code does work if I add an input control in just plain HTML in the body (without appending it with jquery) it works fine.
what am I DNA wrong? It's not like I am trying to use multiple upload controls, I will actually be using at least 3 on the page however, appended to 3 different click events, so in theory there will be multiple ones on the page..lol any help would be greatly appreciated
3 Answers, 1 is accepted
0
James Hood
Top achievements
Rank 1
answered on 12 Dec 2012, 12:35 AM
Heres the entire script block...
I am just trying to figure out what ive done wrong
<script type="text/javascript"> $(document).ready(function () { $('#AdminMenu').load("AdminMenu.html"); $(function () { $('#file_upload').kendoUpload({ complete: function () { $(".k-upload-files.k-reset").remove(); alert("File Uploaded"); }, localization: { "select": "Browse..." }, async: { saveUrl: "/PHP/Focus-Upload.php", removeUrl: "/PHP/Focus-Remove.php", autoUpload: true } }); }); var splitter = $("#vertical").kendoSplitter({ orientation: "horizontal", panes: [{ size: "40%", scrollable: true, }, { size: "60%", scrollable: true, }] }); $('.files').click(function () { $('#sideRight').empty(); var file = $(this).attr('path'); $('#sideRight').prepend('<div class="options_title" style="width:50%; position:relative; left:25%; text-align:center;">You are viewing: <BR><span style="font-style:italic;">'+file+'</span></div>'); $('#sideRight').append('<div style="position:absolute;left:5%; top:15%;"><button id="delete_file">Delete Item</button> <button id="get_link">Get Link</button></div> '); $('#get_link').click(function () { alert('http://'+locationID+'.leeschools.net/'+file); }); $('#delete_file').click(function () { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "../PHP/DeleteUserContent.php?file="+file, datatype: "json", success: function () { location.reload(); }, error: function () { alert("fail"); } }); }); }); $('.folders').click(function () { $('#sideRight').empty(); var file = $(this).attr('path'); $('#sideRight').prepend('<div class="options_title" style="width:50%; position:relative; left:25%; text-align:center;">You are viewing: <BR><span style="font-style:italic;">'+file+'</span></div>'); $('#sideRight').append('<div style="position:absolute;left:5%; top:15%;"> <button id="delete_folder">Delete Folder</button> <button id="create_folder">Create Folder</button> <button id="upload_content">Upload Content</button></div>'); $('#delete_folder').click(function () { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "../PHP/DeleteUserContent.php?file="+file, datatype: "json", success: function () { location.reload(); }, error: function () { alert("fail"); } }); }); $('#create_folder').click(function () { $('#sideRight').append('<div style="position:absolute;left:5%; top:25%;">Folder Name: <input type="text" class="k-textbox" id="FileToMake"> <button id="create_me">Create</button></div>'); $('#create_me').click(function () { var F2M = $('#FileToMake').val(); var path = file+"/"+F2M; $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "../PHP/CreateUserContent.php?file="+path, datatype: "json", success: function () { location.reload(); }, error: function () { alert("fail"); } }); }); }); }); $('.root_element').click(function () { $('#sideRight').empty(); var file = $(this).attr('path'); $('#sideRight').prepend('<div class="options_title" style="width:50%;position:relative; left:25%; text-align:center;">You are viewing: <BR><span style="font-style:italic;">'+file+'</span></div>'); $('#sideRight').append('<div style="position:absolute;left:5%; top:15%;"><button id="create_folder">Create Folder</button> <button id="upload_content">Upload Content</button></div>'); $('#create_folder').click(function () { $('#sideRight').append('<div style="position:absolute;left:5%; top:25%;">Folder Name: <input type="text" class="k-textbox" id="FileToMake"> <button id="create_me">Create</button></div>'); $('#create_me').click(function () { var F2M = $('#FileToMake').val(); var path = file+"/"+F2M; $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "../PHP/CreateUserContent.php?file="+path, datatype: "json", success: function () { alert("success"); location.reload(); }, error: function () { alert("fail"); } }); }); }); $('#upload_content').click(function () { $('#sideRight').append('<div class="fileupload" style="position:absolute;left:5%; top:35%;"><input id="file_upload" name="file_upload" type="file"></div>'); }); }); });</script>0
James Hood
Top achievements
Rank 1
answered on 12 Dec 2012, 12:40 PM
$(function () { $('#file_upload').kendoUpload({ complete: function () { $(".k-upload-files.k-reset").remove(); alert("File Uploaded"); }, localization: { "select": "Browse..." }, async: { saveUrl: "/PHP/Focus-Upload.php", removeUrl: "/PHP/Focus-Remove.php", autoUpload: true } });});that is the uploader call. I am using this inside of a splitter, also using a tree view on the page for another element.
I dont understand why I have never been able to initialize any kendo ui controls through appending content with jquery.. obviously im doing something wrong
0
Hi,
Tsvetomir Tsonev
the Telerik team
I'm copying the reply to your support ticket for community reference.
The problem is most definitely a timing issue, as you're attempting to initialize the Upload before its added to the page. A quick way to debug this is to check if the element is in the DOM:
alert($('#file_upload').length);
I hope this helps.
Tsvetomir Tsonev
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!