2012-06-16 2 views
0

Итак, я пытаюсь получить следующий код jQuery для загрузки на нашу страницу проверки на странице ... в основном он должен показывать связанный-div при вводе текстового поля ... однако он просто не загружается. Я попробовал его в jsfiddle, и она отлично работает, но когда на Magento, он не будет работать ...Использование Magento, как мне загрузить скрипт jQuery?

JQuery КОД

<script> 
    jQuery.noConflict(); 

    jQuery(window).load(function(){ 
jQuery(".show-hidden-div").click(function() { 
    jQuery('.hidden-div').css('display','none'); 
    var inputId = $(this).attr('id'); 
    jQuery("#tip-"+inputId+"").show(); 
}); 

}); 
</script> 

Приведенный выше код вводится непосредственно в head.phtml файл

Вот ссылка на jsfiddle, который показывает, как он должен работать .... http://jsfiddle.net/PeTUy/8/

любое понимание было бы полезно!

ответ

0

Однако в отношении к Magento и JQuery и использования Prototype:

  1. включают JQuery перед любыми скриптами прототипа
  2. добавить jQuery.noConflict(); непосредственно в конец файла JQuery, чтобы обеспечить его всегда вызывается перед Prototype сценариев и изолированы правильно

вам это нужно, чтобы избежать protptype и Jquery конфликт, поскольку они оба гонку за $ в качестве имени метода

+0

Привет Антон: У меня нет проблем с использованием прототипа, но, чтобы быть честным, я действительно мало знаю о Prototype ... Я попытался создать jsfiddle с кодом, который вы предоставили, но он, похоже, не работал ... http://jsfiddle.net/X6HgY/ –

3

Magento Безразлично 't включить jQuery по умолчанию, вам нужно сначала включить источник jQuery.

Если вы не включая JQuery уже, вот ссылка, которая может помочь:

http://www.magentocommerce.com/boards/viewthread/268482/

Предполагая, что вы сделали это, всего в головы, что выгода от использования режима noConflict из JQuery является переопределить переменную, используемую для выбора элементов, например, так:

var $j = jQuery.noConflict(); 

, а затем с помощью $ J, где вам это нужно так:

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

    $j(".selector).functionName(); 

}); 

Таким образом, стандартная переменная «$», используемая jQuery, не конфликтует с подобными прототипами, которые используют одну и ту же переменную.

+0

MIke ... где бы я добавил 'var $ j = jQuery.noConflict();'? Я бы просто добавил это в нижнюю часть загруженного файла jquery? или я должен добавить это как часть скрипта, который мы используем? –

+0

Я бы порекомендовал добавить его как часть скрипта init и загрузить этот скрипт сразу после загрузки jQuery. Для этого я использую файл 'jquery-init.js' в' var/www/magento/js'. убедитесь, что вы добавили 'var $ j = jQuery.noConflict();' в самый верх этого файла. –

Смежные вопросы