簡體   English   中英

為什么jquery中的click事件不適用於我的新元素?

[英]Why a click event in jquery doesn't apply to my new element?

我有三個div,分別具有左,中和右類,我想交換他們的位置,並在他們轉到新位置時應用新類。 但是由於某種原因它不起作用這是我的腳本:

$(function() {
            $(".left").css("left","50px");
            $(".center").css("left","300px");
            $(".center").css("width","300px");
            $(".center").css("height","300px");
            $(".center").css("top","25px");
            $(".right").css("left","650px");
            $(".right").click(function(){
                $(".left").animate({
                    left: '650px'
                    }, 1000, function() {
                    });
                $(".center").animate({
                    left: '50px',
                    width: '200px',
                    top: '75px',
                    height: '200px'
                    }, 1000, function() {
                    });
                $(".right").animate({
                    left: '300px',
                    width: '300px',
                    height: '300px',
                    top: '25px'
                    }, 1000, function() {
                    });
                $(".bule").removeClass("left right center");
                $(".second").addClass("left");
                $(".third").addClass("center");
                $(".first").addClass("right");
                $(".bule").removeClass("first second third");
                $(".left").addClass("first");
                $(".center").addClass("second");
                $(".right").addClass("third");
                });
        });

是一個工作示例。

當您使用jQuery選擇器$('...')選擇元素時-會對選擇進行評估,並對這些元素執行以下操作。 如果以后再刪除某個類或更改所選元素的ID,則說明這些操作已經執行-因此將繼續執行。 同樣,它們不會自動繼承其他選擇器的操作(因為在進行選擇時它們沒有該類/ ID)。

如果要綁定一次事件,並在添加新元素或更改類時使它們起作用,則需要使用稍微不同的事件語法:

$('body').on('click', '.right', function() {

});

請注意,選擇器現在是body元素的原因(因為運行時body元素將始終存在)。 您在這里告訴jQuery的是將click事件綁定到<body>元素,然后,當單擊<body>的子代時,請根據表達式.right評估該元素。 如果該表達式匹配,請調用我的函數。

此方法利用了javascript事件傳播的優勢,其中事件一直冒泡直至其最高祖先。 這意味着在div內的鏈接上單擊將觸發該鏈接,div和主體的單擊事件-按該順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM