2013-03-04 2 views
0

Я пытаюсь создать динамические всплывающие подсказки для своего приложения, однако это не работает, могу ли я иметь представление?динамические подсказки не работают

ниже - мой код, который пытается получить подсказки инструментов через java-скриптинг.

<input type="text" tooltipid="testfamily" onclick="tooltipshow(this);" id="family" 
    value="family " /> 

<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script> 
<script type="text/javascript"> 
var data = { 
    name: "enter your name", 
    family: "enter your family", 
    testfamily: "enter your family", 
    uc1_txtname: "enter your name for Control 1 (User Control1)", 
    uc2_txtname: "enter your name for Control 2 (User Control2)" 
} 
function tooltipshow(e) { 

    var Tip = $("<div class='dinamictip'></div>"); 
    Tip.text(''); 

    var ToolTip = $(e).attr('tooltipid'); 
    if (ToolTip != null) { 
     var offset = $(e).offset(); 
     var height = $(e).height() + 10; 
     Tip.text(data[ToolTip]); 
     Tip.css('position', 'absolute').css('left', offset.left).css('top', offset.top - height); 
     Tip.appendTo('body'); 

     Tip.remove(); 

    } 
}; 

ответ

1

Я не проверял код, но, вероятно, виновником является Tip.remove();: вы удалите наконечник, как только вы его создать.

Попробуйте изменить это в своей функции tooltipshow: при первом запуске этого кода он не найдет подсказку div, поэтому она создаст ее и добавит ее в тело (теперь скрыто). Затем, в следующий раз, когда вы вызовете код, он найдет старый подсказку и повторно ее использует.

function tooltipshow(e) { 

    var Tip = $("#mydinamictip"); 
    if(Tip.length==0){ 
     Tip = $("<div id='mydinamictip' class='dinamictip'></div>"); 
     Tip.hide().appendTo('body'); 
    } 

    Tip.text(''); 

    var ToolTip = $(e).attr('tooltipid'); 
    if (ToolTip != null) { 
     var offset = $(e).offset(); 
     var height = $(e).height() + 10; 
     Tip.text(data[ToolTip]); 
     Tip.css('position', 'absolute').css('left', offset.left).css('top', offset.top - height); 
     Tip.show(); 

    } 
}; 
+0

он не работает, а = ( –

+0

Что именно не работает? Ставить 'console.log (е)' в начале функции и откройте консоль (я рекомендую вам для отладки Javascript в Chrome или Firefox). – Roimer

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

  • Нет связанных вопросов^_^