Плагин JQuery Cycle не работает внутри ASP.NET Masterpage - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть сайт .NET, который использует мастер-страницы. Я пытаюсь добавить некоторые функциональные возможности в меню на моей главной странице, чтобы пользователь мог навести курсор мыши на некоторые динамические ссылки, построенные в коде позади, и обновить динамическую область содержимого, чтобы отобразить элементы, основанные на том, что пользователь надел на них.

Для этого я пытаюсь заставить работать ротатор изображения JQuery (плагин Cycle http://jquery.malsup.com/cycle/). Я также пытался сделать что-то похожее с JQueryUI.

Моя проблема в том, что когда этот код находится на главной странице, он никогда не работает, но если я размещу его на любой другой странице моего сайта, это нормально. Я не использую относительные ссылки на файлы скриптов в своем заголовке.

Может ли кто-нибудь помочь мне выяснить, почему я не могу заставить JQuery работать на главной странице?

Мои заголовки JQuery Cycle приведены ниже.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript" src="http://malsup.github.com/jquery.cycle.all.js"></script>

<script type="text/javascript">
$(document).ready(function () {
    $('#slideshow').cycle({
        fx: 'turnDown',
        speed: 'fast',
        timeout: 0,
        pager: '#nav',
        pagerAnchorBuilder: function (idx, slide) {
            // return sel string for existing anchor
            return '#nav li:eq(' + (idx) + ') a';
        }
    });
});
</script>

1 Ответ

0 голосов
/ 17 мая 2012

Проблема, на мой взгляд, заключается в порядке загрузки скриптов.

Возможно, вы вызываете что-то для несуществующего элемента, поэтому плагин цикла не был создан при его инициализации..

Если у вас есть Ajax, вы можете рассмотреть возможность использования диспетчера сценариев, но в этом нет необходимости.

Порядок загрузки идет следующим образом:

1) Jquery загружается наМастер Страница.2) Страница содержимого объединяется и запускает сценарий заголовка содержимого.3) Document.ready вызывается из мастера. 4) Document.ready вызывается со страницы содержимого.

Если вы добавите несколько предупреждений, вы сможете отследить, используется ли ваш цикл $ ('# slideshow').) звонок делается в нужное время.Вы должны убедиться, что #slideshow существует.

См. Этот пост для Script Manager Solution: Правильный способ использования JQuery при использовании MasterPages в ASP.NET?

В основном:

1) Add Scriptmanager to your Master Page

2) Add a reference to the Jquery library before your Content Page document.ready()

3) Use your document.ready code above as it is, but do not include the references to the library or plugin files. Those belong on the master.

Я знаю, что это старый пост.Но я думаю, что это общая проблема.

...