2013-12-19 3 views
-2

Ниже мой JQuery код: (Вы можете увидеть исходный код всего и проверить его here)многоразовая функция внутри JQuery функции парения

$("document").ready(function() { 
    $("#pclass").hover(function() { 
     $("p[class]").css("border", "3px solid red"); 
     }, function() { 
     $("p[class]").css("border", "none"); 
     } 
    ); 
    $("#pidpara1").hover(function() { 
     $("p[id=para1]").css("border", "3px solid red"); 
     }, function() { 
     $("p[id=para1]").css("border", "none"); 
     } 
    ); 
    ... 
    } 

Вы видите, я использовал css("border", "3px solid red"); и css("border", "none"); еще много раз. Итак, как я могу сделать код повторно используемым в этом случае? (Вы можете увидеть весь исходный код и протестировать его here) 1.

ответ

1

Выяснить, какие части операций одинаковы и какие части различны, а затем создать функцию, которая принимает аргументы для частей, которые различаются:

$(document).ready(function() { 
    addBorderOnHover("#pclass", "p[class]"); 
    addBorderOnHover("#pidpara1", "p[id=para1]"); // "p[id=para1]" can be "#para1", of course 

    function addBorderOnHover(hoverSel, borderSel) { 
     $(hoverSel).hover(function() { 
      $(borderSel).css("border", "3px solid red"); 
      }, function() { 
      $(borderSel).css("border", "none"); 
      } 
     ); 
    } 
}); 

Side Примечания: Кроме того, обратите внимание, что я удалил цитату около document, которого там не должно быть.

+0

Спасибо, но я не могу применить ваш код. Однако, основываясь на вашем ответе, я сделал функцию hoverIn (select) и hoverOut (select), и она работает. –

+0

Например, вы можете проверить это, более простой случай: http://jsbin.com/exEzoRo/2/edit. Это просто работа. –

+0

@AmazingQuestion: И если вы посмотрите в веб-консоли своего браузера, вы увидите сообщение об ошибке: у него есть ошибочный ';'. Исправленная версия: http://jsbin.com/EpeWabeN/1/edit (В приведенном выше коде также была ошибка, хотя другая [отсутствующая '}'], которую я добавил.) –

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