dailynight
New member
Hallo zusammen,
ist wahrscheinlich nicht schwierig, aber ich komme nicht drauf.
Das JS listet einen Ordner mit seinen Dateien auf. Ich möchte per Doppelklick einen Dateinamen in ein Inputfeld übertragen. Für Dateien funktioniert das auch gut, aber für Ordner ist das so nicht vorgesehen. Wie kann ich das Script ändern, damit es auch einen Ordnernamen in das Inputfeld überträgt?
Hier das JS:
Der Aufruf in der HTML Datei:
Wie bekomme ich es hin, das das script auch einen Doppelklick auch einen Ordner akzeptiert?
Danke schon mal im voraus...
ist wahrscheinlich nicht schwierig, aber ich komme nicht drauf.
Das JS listet einen Ordner mit seinen Dateien auf. Ich möchte per Doppelklick einen Dateinamen in ein Inputfeld übertragen. Für Dateien funktioniert das auch gut, aber für Ordner ist das so nicht vorgesehen. Wie kann ich das Script ändern, damit es auch einen Ordnernamen in das Inputfeld überträgt?
Hier das JS:
HTML:
if(jQuery) (function($){
$.extend($.fn, {
fileTree: function(o, h) {
// Defaults
if( !o ) var o = {};
if( o.root == undefined ) o.root = '/';
if( o.script == undefined ) o.script = 'jqueryFileTree.php';
if( o.folderEvent == undefined ) o.folderEvent = 'click';
if( o.expandSpeed == undefined ) o.expandSpeed= 500;
if( o.collapseSpeed == undefined ) o.collapseSpeed= 500;
if( o.expandEasing == undefined ) o.expandEasing = null;
if( o.collapseEasing == undefined ) o.collapseEasing = null;
if( o.multiFolder == undefined ) o.multiFolder = true;
if( o.loadMessage == undefined ) o.loadMessage = 'Lade...';
$(this).each( function() {
function showTree(c, t) {
$(c).addClass('wait');
$(".jqueryFileTree.start").remove();
$.post(o.script, { dir: t }, function(data) {
$(c).find('.start').html('');
$(c).removeClass('wait').append(data);
if( o.root == t ) $(c).find('UL:hidden').show(); else $(c).find('UL:hidden').slideDown({ duration: o.expandSpeed, easing: o.expandEasing });
bindTree(c);
});
}
function bindTree(t) {
$(t).find('LI A').bind(o.folderEvent, function() {
if( $(this).parent().hasClass('directory') ) {
if( $(this).parent().hasClass('collapsed') ) {
// Expand
if( !o.multiFolder ) {
$(this).parent().parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing });
$(this).parent().parent().find('LI.directory').removeClass('expanded').addClass('collapsed');
}
$(this).parent().find('UL').remove(); // cleanup
showTree( $(this).parent(), escape($(this).attr('rel').match( /.*\// )) );
$(this).parent().removeClass('collapsed').addClass('expanded');
} else {
// Collapse
$(this).parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing });
$(this).parent().removeClass('expanded').addClass('collapsed');
}
} else {
h($(this).attr('rel'));
}
return false;
});
// Prevent A from triggering the # on non-click events
if( o.folderEvent.toLowerCase != 'click' ) $(t).find('LI A').bind('click', function() { return false; });
}
// Loading message
$(this).html('<ul class="jqueryFileTree start"><li class="wait">' + o.loadMessage + '<li></ul>');
// Get the initial file list
showTree( $(this), escape(o.root) );
});
}
});
})(jQuery);
Der Aufruf in der HTML Datei:
HTML:
<script type="text/javascript">
$(document).ready( function() {
$('#fileTreeDemo').fileTree({ root: '../../../', script: 'connectors/jqueryFileTree.php', folderEvent: 'click', expandSpeed: 750, collapseSpeed: 750, multiFolder: false }, function(file) {
$('#datei').val(file);
});
});
</script>
</head>
<body>
<div class="example">
<div id="fileTreeDemo" class="demo"></div>
</div>
<form action="dateirechte_setzen.php" method="post"><br />
Rechte: <input name="datei" size="20" type="text" /><br />
Datei/Ordner: <input id="datei" maxlength="3" name="datei" size="45" type="text" /><br />
<input type="submit" value="Ausführen" /><br />
</form>
Wie bekomme ich es hin, das das script auch einen Doppelklick auch einen Ordner akzeptiert?
Zuletzt bearbeitet von einem Moderator: