2016-06-30 15 views
-1

Dies ist, was ich gesucht habe :-) Es funktioniert jetzt, aber ich verstehe nicht den ganzen Code. Zum Beispiel, um mit Argumenten [0] || zu schließen {} ...So rufen Sie die Funktion mit embeded Ereignis

$.fn.myPlugin = function() { 

    // extend the options from pre-defined values: 
    var options = $.extend({ 
     callback: function() {}, 
     input: "", 
     url: "" 
    }, arguments[0] || {}); 

    // call the callback and apply the scope: 
    $(document).on("keyup", options.input, function(){ 
    options.callback.call(this); 
    }); 
}; 

$('#test_input').myPlugin({  
    callback: function() { 
     console.log($(this).val()); 
    }, 
    input: "#test_input", 
    url: "example.php"  
}); 

</script> 
<?php 

echo "<input type=text id=test_input maxlength=50 size=25>"; 
echo "<div id=test_obsah></div>"; 
+1

warum erschweren Sie die Dinge im Leben? was versuchst du zu erreichen, das ist nicht in einer einfachen, Jquery-Art erreichbar? – rrw

+0

Ich habe meine Frage bearbeitet ... – Boublas

Antwort

-1

Dies wird nur keyup Ereignis hinzufügen.

$.fn.Example = function(fn) { 
$(document).on("keyup", this, fn); 
}; 

$(document).ready(function(){ 
$("#test_input").Example(function() { 
    // myfunction, when keyup event is triggered in #test_input 
    }); 
}); 

Dieses können Sie jede Veranstaltung hinzufügen ...

$.fn.Example = function(input) { 
$(document).on(input.event, this, input.fn); 
}; 

$(document).ready(function(){ 
$("#test_input").Example({ 
    fn: function() { 
    // myfunction, when keyup event is triggered in #test_input 
    }, 
    event: "keyup" 
}); 
}); 

Das this Keyword in Ihrer JQuery Erweiterungspunkte auf #test_input dom Element.

UPDATE

Und dies wird mehrere Ereignisse akzeptieren ...

$.fn.Example = function(input) { 
    for (var ev in input) { 
    if (dictionary.hasOwnProperty(ev)) { 
     $(document).on(ev, this, input[ev]); 
    } 
} 

}; 

$(document).ready(function(){ 
$("#test_input").Example({ 
    keyup: function() { 
    // event function here 
    }, 
    focusin: function() { 
    // event function here 
    }, 
    focusout: function() { 
    // event function here 
    }, 
}); 
}); 
+0

Warum der Downvote? Ich beantwortete die Frage, auch wenn ich nicht wollte ... – rrw

+0

Ich habe upvoted :-) Vielen Dank für Ihre Antwort – Boublas

+0

Sie können die Antwort akzeptieren, wenn es Ihren Bedürfnissen entspricht, ist es eine Art zu sagen, danke :) – rrw

Verwandte Themen