2015-07-05 59 views
2

我有按鈕,它是「Click me」,並且mouseover()僅適用於此按鈕問題是關於新按鈕。我不能用addClass添加CSS。我不能將css類添加到新元素

$("button#Clickme").on({ 

    click:function(){ 
     $("div.Div").append('<button class="Clicker" >New Button</button>'); 
    } 

}); 

$("button.Clicker").mouseover(function(){ 
    $(this).addClass("button"); 
}); 
$("button.Clicker").mouseout(function() { 
$(this).removeClass("button"); 
}); 
+0

哪個版本的jQuery您使用的是使用? – rid

+0

版本是1.11.3.min.js –

+0

[動態創建的元素上的事件綁定?]的可能的重複?(http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements) – CodingIntrigue

回答

1

給你,因爲你動態創建按鈕:

 $("button#Clickme").on({ 
 

 
     click: function() { 
 
      $("div.Div").append('<button class="Clicker" >New Button</button>'); 
 
     } 
 

 
     }); 
 

 
     $(document).on('mouseover', 'button.Clicker', function() { 
 
     $(this).addClass("button"); 
 
     alert('hhh'); 
 
     }); 
 

 
     $(document).on('mouseout', 'button.Clicker', function() { 
 
     $(this).addClass("button"); 
 
     alert('hhh'); 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id="Clickme">ClickMe</button> 
 
<div class="Div"></div>

希望這有助於。

+0

它作品的感謝但在第二功能,你再次寫addClass()我認爲解決它。有人可能會面臨同樣的問題 –

1

選擇

$("button.Clicker") 

時使用家長,趕事件, 因爲不存在按鈕那麼你應該使用:

var $parent = $('body'); 
$parent.on('mouseover','button.Clicker').function(){ 
    $(this).addClass("button"); 
}); 
1

可能是問題是,你點擊工作我認爲你需要綁定.click()事件

和我只是改變與我的風格的事件嘗試可能會它會工作

$("button#Clickme").on('click',function(){ 
 
      $("div.Div").append('<button class="Clicker" >New Button</button>');  
 
    }); 
 

 
    $("button.Clicker").mouseover(function(){ 
 
     $(this).addClass("button"); 
 
    }); 
 
    $("button.Clicker").mouseout(function() { 
 
    $(this).removeClass("button"); 
 
    });

這可能爲你工作

1

我想你應該()爲正由腳本動態添加如下元素中使用。上。

$(document).on('mouseover', 'button.Clicker', function() { 
    $(this).addClass("button"); 
    }); 

    $(document).on('mouseout', 'button.Clicker', function() { 
    $(this).addClass("button"); 
    }); 

您與.mouseover()事件的直接連接僅適用於隨時可用的元素。

但對於動態創建的元素,你應該.on()