单击跨度如何更改另一个div的内容?

时间:2013-07-24 13:16:29

标签: javascript jquery function onclicklistener

假设我有这个:

 <div class="title">Title Example 1</div>
 <span id="test">Button</span>

然后点击一个名为#test的跨度,如何更改.title中的文本?

我尝试使用此功能但无效:

    $('#test').click(function(){
    $(".title").text("Haha");
    return false;
}); 

整个HTML:

<html>
<head>
    <title>Page</title>
    <link rel="stylesheet" href="index.css">
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script type="text/javascript" src="/fancybox/source/jquery.fancybox.js?v=2.1.5"></script>
        <script type="text/javascript">
        $('#test').click(function(){
    $(".title").text("Haha");
    return false;
}); 
    </script>
        <script type="text/javascript">
        $(document).ready(function() {
            /*
             *  Simple image gallery. Uses default settings
             */

            $('.fancybox').fancybox();

            /*
             *  Different effects
             */

             $('.fancybox-effects-a').fancybox({
                    autoDimensions: false,
                    height: 568,
                    width: 611
                }); 

            // Change title type, overlay closing speed
            $(".fancybox-effects-a").fancybox({
                helpers: {
                    title : {
                        type : 'outside'
                    },
                    overlay : {
                        speedOut : 0
                    }
                }
            });

            // Disable opening and closing animations, change title type
            $(".fancybox-effects-b").fancybox({
                openEffect  : 'none',
                closeEffect : 'none',

                helpers : {
                    title : {
                        type : 'over'
                    }
                }
            });

            // Set custom style, close if clicked, change title type and overlay color
            $(".fancybox-effects-c").fancybox({
                wrapCSS    : 'fancybox-custom',
                closeClick : true,

                openEffect : 'none',

                helpers : {
                    title : {
                        type : 'inside'
                    },
                    overlay : {
                        css : {
                            'background' : 'rgba(238,238,238,0.85)'
                        }
                    }
                }
            });

            // Remove padding, set opening and closing animations, close if clicked and disable overlay
            $(".fancybox-effects-d").fancybox({
                padding: 0,

                openEffect : 'elastic',
                openSpeed  : 150,

                closeEffect : 'elastic',
                closeSpeed  : 150,

                closeClick : true,

                helpers : {
                    overlay : null
                }
            });

            /*
             *  Button helper. Disable animations, hide close button, change title type and content
             */

            $('.fancybox-buttons').fancybox({
                openEffect  : 'none',
                closeEffect : 'none',

                prevEffect : 'none',
                nextEffect : 'none',

                closeBtn  : false,

                helpers : {
                    title : {
                        type : 'inside'
                    },
                    buttons : {}
                },

                afterLoad : function() {
                    this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
                }
            });


            /*
             *  Thumbnail helper. Disable animations, hide close button, arrows and slide to next gallery item if clicked
             */

            $('.fancybox-thumbs').fancybox({
                prevEffect : 'none',
                nextEffect : 'none',

                closeBtn  : false,
                arrows    : false,
                nextClick : true,

                helpers : {
                    thumbs : {
                        width  : 50,
                        height : 50
                    }
                }
            });

            /*
             *  Media helper. Group items, disable animations, hide arrows, enable media and button helpers.
            */
            $('.fancybox-media')
                .attr('rel', 'media-gallery')
                .fancybox({
                    openEffect : 'none',
                    closeEffect : 'none',
                    prevEffect : 'none',
                    nextEffect : 'none',

                    arrows : false,
                    helpers : {
                        media : {},
                        buttons : {}
                    }
                });

            /*
             *  Open manually
             */

            $("#fancybox-manual-a").click(function() {
                $.fancybox.open('1_b.jpg');
            });

            $("#fancybox-manual-b").click(function() {
                $.fancybox.open({
                    href : 'iframe.html',
                    type : 'iframe',
                    padding : 5
                });
            });

            $("#fancybox-manual-c").click(function() {
                $.fancybox.open([
                    {
                        href : '1_b.jpg',
                        title : 'My title'
                    }, {
                        href : '2_b.jpg',
                        title : '2nd title'
                    }, {
                        href : '3_b.jpg'
                    }
                ], {
                    helpers : {
                        thumbs : {
                            width: 75,
                            height: 50
                        }
                    }
                });
            });


        });
    </script>
    <link rel="stylesheet" type="text/css" href="/fancybox/source/jquery.fancybox.css?v=2.1.5" media="screen" />
</head>
<body>
                 <div class="title">Title Example 1</div>
 <span id="test">Button</span>
</body>
</html>

3 个答案:

答案 0 :(得分:2)

将“alert()”作为您函数的第一个语句,并查看是否收到消息框弹出窗口?

编辑: 尝试将Click事件函数放在$(document).ready(function(){})块中。我认为你的函数永远不会被分配给html控件的click事件。

EDIT2: 经过测试和确认。您的脚本永远不会被分配给click事件处理程序。要么使用内联html标记

<span id="test" onclick="myFunction()">button</span>

然后将脚本更改为包含在名为myFunction

的函数中
<script type="text/javascript">
        function myFunction() {
                $(".title").text("Haha"); //I would advise using .html here though
                return false;
        }
 </script>

或在页面通过JQuery完全加载时指定它

<script type="text/javascript">
        $(document).ready(function () {
            $('#test').click(function () {
                $(".title").text("Haha");
                return false;
            });
etc...
</script>

答案 1 :(得分:1)

您正在尝试将事件处理程序绑定到元素之前。

移动<script>,使其在 <span>之后显示

答案 2 :(得分:-1)

尝试.html()而不是.text()  并且在你的html

之前调用它时,将你的绑定包装在文档中