отменить функцию на определенной странице - PullRequest
1 голос
/ 26 апреля 2011

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

http://uwptestsite.uwpistol.net/menu.html

вот тестовая страница.

мойкод, который я написал здесь.

    // JavaScript Document    

$(document).ready(function(){
    $(".letter-b").width(12);
    $(".letter-b").css({"overflow":"hidden", "position":"relative"});       

$(".letter-b a").hover(
    function() {
        $(this).parent().stop().animate({"width": "52"}, 300);
    },
    function() {
        $(this).parent().stop().animate({"width": "12"}, 300);
    });

    $(".letter-e").width(12);
    $(".letter-e").css({"overflow":"hidden", "position":"relative"});

    $(".letter-e a").hover(
        function() {
        $(this).parent().stop().animate({"width": "83"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "12"}, 300);
        });    

    $(".letter-h").width(12);
    $(".letter-h").css({"overflow":"hidden", "position":"relative"});

    $(".letter-h a").hover(
        function() {
        $(this).parent().stop().animate({"width": "53"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "12"}, 300);
        });

    $(".letter-l").width(11);
    $(".letter-l").css({"overflow":"hidden", "position":"relative"});

    $(".letter-l a").hover(
        function() {
        $(this).parent().stop().animate({"width": "54"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "11"}, 300);
        });

    $(".letter-n").width(12);
    $(".letter-n").css({"overflow":"hidden", "position":"relative"});

    $(".letter-n a").hover(
        function() {
        $(this).parent().stop().animate({"width": "43"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "12"}, 300);
        });         

    $(".letter-o").width(12);
    $(".letter-o").css({"overflow":"hidden", "position":"relative"});

    $(".letter-o a").hover(
        function() {
        $(this).parent().stop().animate({"width": "94"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "12"}, 300);
        });     

    $(".letter-r").width(12);
    $(".letter-r").css({"overflow":"hidden", "position":"relative"});

    $(".letter-r a").hover(
        function() {
        $(this).parent().stop().animate({"width": "95"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "12"}, 300);
        });


    $(".letter-w").width(17);
    $(".letter-w").css({"overflow":"hidden", "position":"relative"});

    $(".letter-w a").hover(
        function() {
        $(this).parent().stop().animate({"width": "95"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "17"}, 300);
        });


    $(".letter-x").width(12);
    $(".letter-x").css({"overflow":"hidden", "position":"relative"});

    $(".letter-x a").hover(
        function() {
        $(this).parent().stop().animate({"width": "52"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "12"}, 300);
        });

    $(".letter-y").width(12);
    $(".letter-y").css({"overflow":"hidden", "position":"relative"});

    $(".letter-y a").hover(
        function() {
        $(this).parent().stop().animate({"width": "52"}, 300);
        },
        function() {
        $(this).parent().stop().animate({"width": "12"}, 300);
        });    
});

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

$("letter-h").disableAccordion();

Надеюсь, у меня есть смысл, я знаю, что у кого-то найдется решениеСпасибо за это!

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

На странице, которую вы не хотите использовать плагин (если вы не хотите динамически загружать плагин в зависимости от страницы), вы можете добавить:

<script type="text/javascript">
$(document).ready(function ()
{
    $(".letter-a").unbind("mouseenter mouseleave");
});
</script>

после вызова, чтобы включить файл js

1 голос
/ 26 апреля 2011

Вы можете использовать этот код:

$("letter-h").unbind('mouseenter mouseleave');
...