2010-12-16 4 views
1

Dieses einfach sein könnte jemand in anrufen, aber ich bin ein bisschen wie ein Neuling und überall gesucht. Ich habe eine JavaScript-Funktion.Hilfe eine Javascript-Funktion von PHP oder HTML

mkfile : function(fm) { 

Ich versuche, dies von einem On-Click-Befehl auszuführen.

Irgendwelche Ideen. Entschuldigung, ich bin ein bisschen dumm, aber ich habe alles versucht und nichts passiert.

+1

Onclick = "Funktion (arg);" funktioniert nicht? Sie müssen mehr Code posten – Robert

+1

Ihr JavaScript-Snippet macht keinen Sinn. Es ist syntaktisch ungültig. –

+0

Matt, ich denke, das ist der Namespace von Javascript. – mythicalprogrammer

Antwort

3

Verwenden Sie das Attribut onclick wie folgt: <a onclick="javascript:mkfile()" >Bob</a>. Sie müssen nicht die javascript: vor-Hand haben, aber es hilft in Browsern wie IE (nicht einmal mich zu starten).

By the way, der Code falsch ist, sollte es

sein
function mkfile(fm) { 
    // your code 
} 

Sie nicht zögern, zu fragen, ob Sie das nicht verstehen.

2

Ohne mehr Code ist es schwierig zu sagen, was Sie falsch machen, aber normalerweise geht es wie folgt aus:

<button id="foo">Click me!</button> 

<script type="text/javascript"> 

    document.getElementById('foo').onclick = function() { 
     alert('Hello World!'); 
    } 

</script> 

DEMO

Es gibt mehrere Möglichkeiten der Ereignishandler binden. Ich schlage vor, quirksmode.org - Introduction to Events, MDC - Event handlers und MDC - The DOM and JavaScript zu lesen und auch die Links dort befolgen;)

+0

Dies ist nicht 'von' HTML oder PHP, aber immer noch gültig. (Und es enthält nicht oder Verweis auf den Code der Frage) – Fred

+1

@Fred: 1) Das Schreiben von Event-Handlern im HTML-Code ist Old School und sollte sowieso nicht mehr gemacht werden. Außerdem ist * das Aufrufen von JavaSCript aus HTML * für Interpretationen sehr offen. 2) Wenn ich lese * help beim Aufruf einer JavaScript-Funktion von PHP * dann nehme ich an, das OP hat wenig zu Null Wissen über DOM-Skripting und weiß nicht den besten Weg. –

+0

Völlig einverstanden. – Fred

1

Wie andere haben darauf hingewiesen, es ist nicht wirklich möglich, zu sehen, was mit Ihrem Code falsch ist, ohne mehr davon zu sehen. Aber der kleine Teil Sie auf dem Laufenden (mit seinem name:value) gilt nur in ein paar Umstände, von denen beide sind etwas gemeinsame Muster von JS Design:

// Pattern one 
var makeMyObject = function() { 
    var privateVar = 'a private member'; 
    var privateMethod = function() {}; 
    var objOut = { 
     mkDir:function() {/*more code*/}, 
     mkFile:function() {/*more code*/}, 
     delFile:function() {/*more code*/} 
    }; 
    return objOut; 
}; 
myObject = makeMyObject(); 
myObject.mkFile(); 

// Pattern two 
var myObject = { 
    mkDir:function() {/*more code*/}, 
    mkFile:function() {/*more code*/}, 
    delFile:function() {/*more code*/} 
}; 
myObject.mkFile(); 

Wenn das ist, was Sie haben, wie Sie binden können dies einen Onclick in Ihrem HTML-Code ist:

<a href="/some_page.html" onclick="myObject.mkFile()">Click here</a> 

oder in Ihrem JS,

domMyAnchorElement.onclick = myObject.mkFile; // Note there are no parens because you are binding the function, not invoking it. 
+0

Ich wusste nie, dass Sie das tun können! Vielen Dank! – Fred

+0

Immer noch kann es nicht funktionieren. Ich habe weitere Informationen hinzugefügt. – simon

+0

Kann immer noch nicht funktionieren. Ich möchte es hier anhängen. Gibt es einen Weg. Sie können das js-Skript hier sehen. Dort sehen Sie die Funktion mkfile. http://elrte.org/redmine/projects/elfinder/repository/revisions/master/entry/src/js/elFinder.ui.js Ich weiß nicht, ob du elfinder gesehen hast, aber es sieht ziemlich gut aus. – simon