2010-08-30 2 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) ; 

без эффекта

заранее спасибо

Это должно быть как imple вопрос для людей знал структуру JQuery Я не совсем знаком со структурой JQuery, но я использовал его разными способами в моих кодах.

Этот пример предназначен для изучения одной части этой структуры, , что у меня была проблема.

+0

действительно спасибо кто принимал участие в этой теме. – Sypress

ответ

3

См. Это http://www.jsfiddle.net/, что может помочь вам понять, где разместить этот код. Кроме кода в Javascript разделе jsfiddle ссылка должна завернутые в <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

+0

без проблем bro :) –

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, на который вызывается метод.

Edit: Является ли это то, что вам нужно ...

$(function ($) { 

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

    place('pnlLinx', 700, 500); 

}); 

Edit 2: Если вы хотите функцию под $,

$(function ($) { 

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

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

}); 

удачи.

+0

потому что я пытаюсь изучить структуру во время моей работы, ваш пост в любом случае поможет мне, но я не хочу использовать это, я передал имя div функции, и все процессы войдут внутрь нашей функции , То, что я хочу узнать больше, - это то, как мы можем использовать функцию, не использующую регулярные события JQuery, или просто вызвать ее в событии ready() JQuery. (вызов нашей определенной функции) – Sypress

+0

Я добавил другой метод, посмотрим, нужно ли это то, что вам нужно ... –

+0

Исключением является то, что я хочу использовать функцию вне нее, место ('pnlLinx', 700, 500); Могу ли я использовать его внутри готовой части: $ (ready(). Function() – Sypress

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

+1

вам нужно включить функцию где-нибудь после добавления библиотеки jQuery. После того, как ваша функция включена, вы можете назвать ее как $ .place ('mydiv', 700, 500); в $ (document) .ready() или где-либо еще после функции $ .place. –

+0

спасибо sidewaysmilk, хорошие примеры – Sypress

0

Убедитесь, что библиотека jQuery должна быть включена до любого кода jquery.