如何编写常用的jquery函数来显示工具提示

时间:2013-09-24 04:46:50

标签: jquery html

我正在使用coda style jquery插件来显示气球工具提示。这是链接:http://www.uhleeka.com/blog/2009/11/bubbletip/

我已经写了这个jquery来点击元素来显示气球工具提示。

这就是我在id上做的事情,但我怎么能用类名来做呢。 如何为每个id写入bubbletip函数,我怎样才能编写单(通用)jquery函数来应用bubbletip。

<script type="text/javascript">
    $(document).ready(function() {
            $('#fee').bubbletip($('#tip1_focusblur'), {
                deltaDirection: 'right',
                bindShow: 'click',
                bindHide: 'blur'
            });



            $('#price').bubbletip($('#tip2_focusblur'), {
                deltaDirection: 'right',
                bindShow: 'click',
                bindHide: 'blur'
            });

    });
</script>

<p>Input box 1<input type="text" id="fee" value="focus me!" /></p>

<div id="tip1_focusblur" style="display:none; max-width:330px;">
    <pre class="tip">
        This is the div where help can be display.
    </pre>  
</div>

<p>Input box 2<input type="text" id="price" value="focus me!" /></p>

<div id="tip2_focusblur" style="display:none; max-width:330px;">
    <pre class="tip">
        This is the div where help can be display.
    </pre>  
</div>

修改 我找到了soloution: 根据JofryHS的建议,我已尝试过这种解决方案。

这是一个好的解决方案吗?

使用Javascript:

$(document).ready(function() {
    var count = 0;
        $('[data-bubble]').each(function() {    
            count++;
            var data = $(this).attr('data-bubble');
            $(this).parent().append($('<div class="bubble" id="bubble_'+ count+ '">' + data + '</div>'));
            $(this).bubbletip('#bubble_'+count, {
                deltaDirection: 'right',
                bindShow: 'click',
                bindHide: 'blur'
            });
        });
});

HTML:

<input type="text"  data-bubble="This is Test text 1"  value="focus me!" />

<input type="text"  data-bubble="This is Test text 2"  value="focus me!" />

2 个答案:

答案 0 :(得分:0)

一种方法是创建一个全局函数,并在每次需要时调用它

 function bubbleTip(obj1,obj2){
    $('#'+obj1).bubbletip($('#'+obj2), {
            deltaDirection: 'right',
            bindShow: 'click',
            bindHide: 'blur'
        });
}

并使用您想要显示工具提示的参数调用该函数。

$(function(){ //shorthand for document.ready
   bubbleTip('fee','tip1_focusblur');
   bubbleTip('price','tip2_focusblur');
});

答案 1 :(得分:0)

您可以使用HTML data-属性自动调用bubbletip。

HTML +脚本(未测试):

<script type="text/javascript">
    $(document).ready(function() {
            $('[data-bubble!=""]').each(function() {
                var target = $(this).data('bubble');
                $(this).bubbletip($('#' + target), {
                    deltaDirection: 'right',
                    bindShow: 'click',
                    bindHide: 'blur'
                })
            });
    });
</script>

<p>Input box 1<input type="text" id="fee" data-bubble="tip1_focusblur" value="focus me!" /></p>

<div id="tip1_focusblur" style="display:none; max-width:330px;">
    <pre class="tip">
        This is the div where help can be display.
    </pre>  
</div>

<p>Input box 2<input type="text" id="price" data-bubble="tip2_focusblur" value="focus me!" /></p>

<div id="tip2_focusblur" style="display:none; max-width:330px;">
    <pre class="tip">
        This is the div where help can be display.
    </pre>  
</div>

只要您在HTML标记的任何位置包含上面的脚本代码段,就可以将data-bubble与目标放在一起,它应该会自动绑定到您的bubbletip。

类似的问题:Jquery select all elements that have $jquery.data()

jQuery data