DNN jquery error Ошибка выполнения Microsoft JScript: объект не поддерживает это свойство или метод в IE - PullRequest
0 голосов
/ 19 марта 2011

Я впервые пробую jquery в Dotnetnuke, но он не работает.Мой файл ascx выглядит как

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="DesktopModules.demo.WebUserControl" %>
<script type="text/javascript">
    jQuery(document).ready(function () {
        jQuery("#featured > ul").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", 7500, true);
  });
</script>

, а мой кодовый файл выглядит так:

using System;
using System.Web.UI;
using DotNetNuke.Entities.Modules;

namespace DesktopModules.demo
{
    public partial class WebUserControl : PortalModuleBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
                {
                if (!Page.IsPostBack)
                {
                    DotNetNuke.Framework.jQuery.RequestRegistration();
                }
            }
            catch (Exception exc)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
    }
}

В IE я получаю сообщение об ошибке

Ошибка выполнения Microsoft JScript:Объект не поддерживает это свойство или метод в IE

в строке

jQuery("#featured > ul").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", 7500, true);

, пожалуйста, помогите с этой ошибкой, не уверен, что еще попробовать.

Ответы [ 3 ]

1 голос
/ 19 марта 2011

Вы уверены в этом селекторе "#featured> ul"?Обычно вы ссылаетесь на родительский элемент ul, определяющий вкладки, а не на ul.Итак:

jQuery("#featured").tabs(...

Живой пример


Если вышеупомянутое не делает этого, несколько советов:

.... не уверен, что еще попробовать ...

Попробуйте отладить его.Здесь, в 2011 году, у вас есть множество инструментов, которые вы можете использовать для обхода кода во время выполнения и точно видеть, что происходит не так.

  • В IE8 & IE9 есть полуразумный отладчик и встроенные инструментыили используйте VS.Net
  • IE6 и IE7 не имеют ничего встроенного, но вы можете использовать VS.Net с ними тоже
  • Firefox не имеет ничего встроенного, ноесть отличный и бесплатный плагин Firebug
  • Chrome имеет хороший отладчик и встроенные инструменты
  • Safari имеет хороший отладчик и встроенные инструменты (вы можетенеобходимо включить пункт меню в опциях)
  • Opera имеет хороший отладчик и встроенные инструменты

Так что, учитывая ошибку в этой строке:

jQuery("#featured > ul").tabs({ fx: { opacity: "toggle"} }).tabs("rotate", 7500, true);

Я бы разбил его, чтобы увидеть, какая часть выходит из строя:

var x = jQuery("#featured > ul");
x = x.tabs({ fx: { opacity: "toggle"} });
x.tabs("rotate", 7500, true);

... поскольку это функционально эквивалентно цепочечной (все-одна-строчная) версия.

0 голосов
/ 21 марта 2011

Я вижу вероятную причину вашей проблемы: .tabs () не является частью jquery - это часть другого (тесно связанного) скрипта, называемого jquery UI.

Вы только добавили ссылкув jquery, и не добавили ссылку на jquery UI.Так что .tabs () выдаст вам ошибку «tabs is undefined».

Вы можете прочитать о .tabs () здесь: http://jqueryui.com/demos/tabs/

Вы можете скачать его здесь: http://jqueryui.com/download ... или, что еще лучше, загрузите его из Google CDN.

Для ссылки на .tabs () вам необходимо добавить это во 2-ю строку вашего файла .ascx:

<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js"  />
0 голосов
/ 21 марта 2011

Спасибо за ответ, я разбил его, как предложено.Ошибка в строке: x = x.tabs ({fx: {opacity: "toggle"}});

вкладки не определены.Я добавил следующие строки на мою страницу ascx безрезультатно:

<script type="text/javascript" src="~/Resources/Shared/Scripts/jquery/jquery-ui-1.7.3.custom.min.js"></script>
<link type="text/css" href="~/Resources/Shared/Scripts/jquery/css/ui-lightness/jquery-ui-1.7.3.custom.css" rel="stylesheet" /> 

tabs по-прежнему не определены.Есть ли правильный способ включить эти файлы?

...