2010-08-30 16 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代碼之前。

相關問題