Reputation: 21328
I'm trying to write my own function like with no luck. "...is not a function"
jQuery.fn.extend ({
myFirstFunction : function () { alert ("first function") }
});
<script type="text/javascript">
$(function(){
$.myFirstFunction();
});
</script>
Upvotes: 2
Views: 126
Reputation: 16591
There is a difference between $.extend()
and $.fn.extend()
, depending on what you want to do and how you want to access your function:
$.fn.extend({
myFunction: function(){...}
});
$('div').myFunction();
$.extend({
myFunction2: function(){...}
});
$.myFunction2();
In your case, use $.extend()
and it should work fine.
Upvotes: 3
Reputation: 413727
If what you want to do is add a "global" jQuery facility, you probably want:
jQuery.extend({
myFirstFunction : function () { alert ("first function") }
});
It's just "jQuery.extend", not "jQuery.fn.extend". You can also just write:
jQuery.myFirstFunction = function() {
alert("hello world");
};
Using "extend()" is handy when you're adding a bunch of functions.
Upvotes: 1
Reputation: 14382
$.myFirstFunction = function () { alert ("first function") };
<script type="text/javascript">
$(function(){
$.myFirstFunction();
});
</script>
Or
jQuery.fn.extend ({
myFirstFunction : function () { alert ("first function") }
});
<script type="text/javascript">
$(function(){
$(element).myFirstFunction();
});
</script>
Read more at http://docs.jquery.com/Plugins/Authoring
Upvotes: 5
Reputation: 9304
Try this.
<script type="text/javascript">
jQuery.fn.nameOfFunction = function(){
alert('nameOfFunctuin was called');
}
$().ready(function(){
$('<div></div>').nameOfFunction()
});
</script>
Upvotes: 1