2

私がこれを持っているとしましょう:

 <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>
4

3 に答える 3

2

関数の最初のステートメントとして "alert()" を配置し、メッセージ ボックスのポップアップが表示されるかどうかを確認しますか?

編集: Click イベント関数を $(document).read(function(){}) ブロック内に配置してみてください。あなたの関数がhtmlコントロールのクリックイベントに割り当てられることは決してないと思います。

Edit2: テストされ、確認されました。スクリプトがクリック イベント ハンドラに割り当てられることはありません。インライン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>
于 2013-07-24T13:29:04.860 に答える
1

要素が存在する前に、イベント ハンドラを要素にバインドしようとしています。

の後<script>表示されるように を移動します。<span>

于 2013-07-24T13:45:25.400 に答える