2016-04-14 49 views
0

我有一個span類,應該在事件發生後最初隱藏並可見。啓用和禁用基於甚至在jQuery中的Span類

<span class="badge badge-xs badge-danger">2</span> 

我需要它在下面的代碼發生:

<script> 
$(document).on("DOMSubtreeModified", "#history", function() { 
    //add code to make span class visible 
}); 
</script> 

西隧我需要的是讓隱藏在頁面加載的類,並在段落中#history ID是否發生改變後可見..

通過jQuery怎麼可能?

+0

你想顯示和隱藏?或者你啓用和禁用? –

+0

跨度無法禁用或啓用。你是在說讓它可見/不可見嗎? –

+0

您通常會禁用表單元素,您在啓用/禁用跨度時意味着什麼。也許你想給它一個'殘疾人'的樣子?或使文本不可選? – rubentd

回答

2

您可以使用.show().hide()來更改元素的可見性。

$("span.badge").hide(); // or make it hidden in css by default 

$(document).on("DOMSubtreeModified", "#history", function() { 
    $("span.badge").show(); 
}); 

酒店disabled是在輸入類型字段只使用,例如在文本字段,你就不能在裏面輸入。但是在一個範圍內它不起作用,因爲默認情況下你不能輸入任何東西。

0

自定義事件,你有兩個選擇:

  1. 與觀測工作。你有一個用戶和一個通知者。

    function Observer(){ 
        var subscriber = []; 
        return{ 
         addSubscriber: function(func){ 
          subscriber.push(func); 
         }, 
         notify: function(){ 
          for(var i = 0; i < subscriber.length; i++){ 
           subscriber[i]();    
          } 
         } 
        } 
    } 
    
    var observer = new Observer(); 
    
    function calledOnEvent(){ 
        $(element).hide(); 
    } 
    
    observer.addSubscriber(calledOnEvent); 
    
    function createTheEvent(){ 
        //Logic 
        observer.notify(); 
    } 
    
  2. 您可以使用eventListener和customEvent對象。

    document.addEventListener('event', aFunction); 
    
    function createAEvent(){ 
        var event = new Event('event'); 
        document.dispatchEvent(event); 
    } 
    

在純JavaScript是自定義事件不是很好的支持。 jQuery有一個包裝這個.trigger():​​

+0

謝謝......我知道DOMSubtreeModified事件已被棄用。但作爲一個新手,我不明白如何在我的代碼中使用變異觀察者? – user3790186

相關問題