2014-11-20 2 views
0

Предположим, я не могу изменять элементы html, кроме как через скрипт.Использование JQuery для добавления div на наведение типа ввода изображения

У меня есть страница, которая имеет несколько кнопок Они не имеют IdS
Цель проста:
плыви ДИВ под кнопками, чтобы добавить «советы» и информацию, что они являются для

Этот беспорядок в системе erp есть некоторые нечетные cluetip jquery stuff running. Я смог динамически добавлять атрибут title, но затем возникли проблемы с его превращением в предмет типа подсказки. Поэтому я отказался от этого esp, так как был отмечен код больше не поддерживается. Я решил Jquery и скрыть/показать DIVS

Я новичок в JQuery

Так две вещи 1) Этот сценарий ниже только триггерами первый DIV - как ни странно ничего не происходит для второго и третьего?

2) Если у меня есть 7 кнопок - могу ли я назвать идентификатор div так же, как и мои кнопки, и использовать ссылку (эта) для ссылки. Я пробовал безуспешно. Но это кажется намного более эффективным, чем написание 8 условий, буквально ссылающихся на них.

Слишком много времени, поэтому я ищу все, что вы безумно талантливый jquery, чтобы помочь определить, почему это не работает для меня и как это делается.

Кодекс

<script> 
$(".ShoppingList_UpdateListButton").hover(
    function() { 
    $("div#ShoppingList_UpdateListButton").show(); 
    }, 
    function() { 
    $("div#ShoppingList_UpdateListButton").hide(); 
    } 
); 
$(".ButtonAddListToCart").hover(
    function() { 
    $("div#ButtonAddListToCart").show(); 
    }, 
    function() { 
    $("div#ButtonAddListToCart").hide(); 
    } 
); 
$(".ButtonEmptyList").hover(
    function() { 
    $("div#ButtonEmptyList").show(); 
    }, 
    function() { 
    $("div#ButtonEmptyList").hide(); 
    } 
); 

</script> 
<div id="ButtonEmptyList" style="display: none;">Click this to DELETE this list.</div> 
<div id="ButtonAddListToCart" style="display: none;">Click this to add ENTIRE list above, and current quantities displayed to your shopping cart.</div> 
<div id="ShoppingList_UpdateListButton" style="display: none;">Click this to update your list. </div> 

EDIT TO POST

Это поможет ... вот как на странице появится кнопка.
Вы заметите, что я ссылки на класс, так как он не имеет атрибут ID

<input type="image" name="ButtonUpdateList" src="/contentonly.aspx?file=images/buttons/updatelist_b.gif" class="ShoppingList_UpdateListButton" title="Click this to update your list."> 
+0

ссылок с использованием класса есть - «.ButtonEmptyList» сверху - Я не могу изменить – user2812171

+0

Вы должны предоставить скрипку своего дела. С кнопками, divs и вашим текущим скриптом ... тогда мы могли бы исправить это;) –

+0

Вы не можете иметь один и тот же идентификатор дважды, идентификаторы должны быть уникальными. Он будет работать, но это не очень хорошая практика. –

ответ

0

Если у вас есть только один класс на каждой кнопке, вы можете попробовать что-то вроде:

HTML:

<button class="ref1">REF1</button> 
<div id="ref1">REF1's div ...</div> 
<button class="ref2">REF2</button> 
<div id="ref2">REF2's div ...</div> 
<button class="ref3">REF3</button> 
<div id="ref3">REF3's div ...</div> 

JS:

$('.ref1, .ref2, .ref3') 
.hover(function() { 
    var myClass = $(this).attr('class'); 
    $('#' + myClass).show(); 
}, function(){ 
    var myClass = $(this).attr('class'); 
    $('#' + myClass).hide(); 
}); 

JSFIDDLE: http://fiddle.jshell.net/msieurtoph/rwj59m8d/


кома в селекторе JQuery позволяет иметь столько селекторы, сколько вам нужно в одном наборе.

Вы могли бы сделать это таким образом, тоже:

$('.ref1').add('.ref2').add('.ref3').hover(...); 

или, если вам нужно сделать это последовательно/программно:

mySelection = $('.ref1'); 
mySelection = mySelection.add('.ref2'); 
mySelection = mySelection.add('.ref3'); 
mySelection.hover(...); 
+0

Спасибо! Мне не понадобилось последовательно ... и сначала ваш код делал то же самое, что и мой, - только запуск первого. Я понимаю, что нужно было выполнить корректировку, и имена и класс были замешаны. Я оставил весь свой код в покое и включил здесь свою часть! И это сработало как шарм! $ ('ref1, .ref2, .ref3 ') .hover (функция() { вар MyCLASS = $ (это) .attr (' класс '); $ (' #' + MyCLASS) .show(); }, function() { var myClass = $ (this) .attr ('class'); $ ('#' + myClass) .hide(); }); – user2812171

+0

;) Я только дал вам пример, используя более простые имена/классы. Хорошо, если это помогло. –

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