2010-08-30 62 views
1

我想知道,当我们有一个带参数的函数,何时以及如何使用JQuery函数? - 简单的一

的作品就像一个VB程序

当我如何使用这个功能呢?

我们怎么称呼它?

<script type="text/javascript"> 

function place(div, image_x, image_y) 
{ 

    $("#"+div).css("position", "absolute") ; 

    $("#"+div).css("left",image_x+"px"); 

    $("#"+div).css("top",image_y+"px"); 

} 

何时以及如何我可以使用这个功能吗?

我试图用几种方式使用它,但似乎JQuery没有激活。

我的一些努力,把这个的:(也许搞笑)

(function($) { 
    // $(document).ready(function(){ 

    $.fn.Place = function place(div, image_x, image_y) { 
    }) (jQuery) 
jQuery(function($) { 
    place("pnlLinx", 700 , 500) ; 
}); 

或者干脆:

place("pnlLinx", 700 , 85) ; 

没有效果

在此先感谢

这应该是实现问题的人知道JQuery的结构 我不完全熟悉JQuery的结构,但我在代码中使用了不同的方式 。

这个例子只是为了学习这个结构的一部分, 我有问题。

+0

真的感谢任何人参加了此次话题。 – Sypress 2010-08-30 08:39:13

回答

3

看到这个http://www.jsfiddle.net/,这可能会帮助你了解在哪里放置代码。 也守则的jsfiddle链接Javascript的部分需要包裹在<script>标签

完整代码

$.fn.place = function (image_x, image_y) { 
    this.css({ 
     position: 'absolute', 
     left: image_x + 'px', 
     top: image_y + 'px' 
    }); 
}; 

function place(divId, image_x, image_y) { 
    $('#' + divId).css({ 
     position: 'absolute', 
     left: image_x + 'px', 
     top: image_y + 'px' 
    }); 
} 


$(document).ready(function(){ 

    $('#pnlLinx').place(50, 100); 


    place('pnlLinx', 100, 150); 


    $('#pnlLinx').animate({color:"#dddddd"}, 500, function(){ 
      $(this).place(50, 100);  
      $(this).animate({color:"#aaaaaa"}, 1000, function(){ 
         place($(this).attr("id"), 100, 150); 
      }); 
    }); 

}); 
+0

真的很有帮助,谢谢 – Sypress 2010-08-30 07:50:22

+0

没问题兄弟:) – 2010-08-30 08:09:03

4

我并没有完全得到你的问题,但这里是我可以说,

$.fn.place = function (image_x, image_y) { 
    this.css({ 
     position: 'absolute', 
     left: image_x + 'px', 
     top: image_y + 'px' 
    }); 
}; 

现在你可以做

$('#pnlLinx').place(700, 500); 

添加到$ .fn范围函数创建一个jQuery方法,你可以调用一个jQuery对象。在该方法中,this引用该方法在其上调用的jQuery对象。

编辑:这是你所需要的...

$(function ($) { 

    function place(divId, image_x, image_y) { 
     $('#' + divId).css({ 
      position: 'absolute', 
      left: image_x + 'px', 
      top: image_y + 'px' 
     }); 
    } 

    place('pnlLinx', 700, 500); 

}); 

编辑2:如果你想在$功能,

$(function ($) { 

    $.place = function (divId, image_x, image_y) { 
     // ... 
    } 

    $.place('pnlLinx', 700, 500); 

}); 

好运。

+0

,因为我试图在工作中学习结构,无论如何你的帖子会帮助我,但我不想使用这个,我把div的名字传给了函数,所有的进程都会进入我们的函数。 我想知道更多的东西是我们如何使用一个不使用JQuery常规事件的函数,或者只是在JQuery的ready()事件中调用它。 (调用我们定义的函数) – Sypress 2010-08-30 06:20:48

+0

我添加了另一种方法,看看你是否需要这个... – 2010-08-30 06:27:54

+0

例外是我想使用它之外的函数, place('pnlLinx',700,500); 我可以用它准备部分内: $(就绪()()函数 – Sypress 2010-08-30 06:32:36

1

您不再使用jQuery作为您正在编写的匿名函数的参数,而是将Place添加为方法,然后尝试将其用作静态函数。

(function($) { 
    // $(document).ready(function(){ 

    $.fn.Place = function place(div, image_x, image_y) { 
    }) (jQuery) 
jQuery(function($) { 
    place("pnlLinx", 700 , 500) ; 
}); 

应该

(function($) { 

    $.place = function place(div, image_x, image_y) { 

    $("#"+div).css("position", "absolute") ; 
    $("#"+div).css("left",image_x+"px"); 
    $("#"+div).css("top",image_y+"px"); 
    }; 

})(jQuery); 

然后你就可以

$.place('mydiv', 700, 500); 

请注意,我用小写字母P,因为这是在JavaScript方法名称的约定。

+0

放置位置:$ .place('mydiv',700,500); 它可以在我的代码中处于JQuery的就绪状态吗? – Sypress 2010-08-30 06:16:39

+1

你需要在添加jQuery库之后的任何地方包含函数。包含你的函数后,你可以把它称为$ .place('mydiv',700,500);在$(document).ready()或$ .place函数后的任何地方。 – 2010-08-30 06:49:13

+0

谢谢sidewaysmilk,很好的例子 – Sypress 2010-08-30 07:57:30

0

确保jQuery库必须包含在任何jQuery代码之前。

相关问题