Често се налага да ползваме в една страница двете библиотеки, най-често това се налага ако поставим lightbox, а страницата ни ползва jQuery.

Има две възможни решения на този проблем.

1. Решение 1 – Заменяне на променливата на основната функция $ на jQuery с друга например $j

За целта в началото на вашата страница поставете
<script>
var $j = jQuery.noConflict();
</script>
След това където се налага да ползвате jQuery функция използвайте $j( ….

2. Решение 2 – презапишете функцията на jQuery

Отново в началото на страницата поставете

jQuery.noConflict();
и след това ползвайте функциите на jQuery по следния начин
jQuery(document)…

След като направите някоя от промените за jQuery, функциите на prototype можете да ползвате по стандартният им начин.

2 thoughts on “Изполване на jQuery и prototype в една html страница

  1. Напълно против съм използването на два framework-а, които решават подобни проблеми, в една страница. Ако все пак някой е твърде упорит и реши да ги използва заедно по-добър вариант, според мен, са две immediate функции. По този начин ще се спаси global environment и нещата ще са малко по-изчистени. Освен това няма да се налага replace на всички $ с $j в, евентуалния стар, код с jQuery.

    (function ($) {
    //Your jQuery code goes here…
    console.log($ === jQuery);
    }(jQuery));

    ​(function ($) {
    //Your Prototype code goes here
    console.log($ === Prototype);
    }(Prototype));​

  2. Напълно съгласен съм, че не е добра идея да се ползват заедно, дори съм привърженик на чистото писане на javascript, но когато се налага това са възможни решения.
    Благодаря за предложенето трето решение! 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *