2014-02-28 36 views
1

我曾嘗試使用this question的解決方案來顯示分數。問題是我不知道如何使它可以在動態生成的分數上工作。這裏是jQuery代碼塊:如何使用動態生成的內容開展此項工作?

$(document).ready(function() { 

    $('#main').on('click', '#startButton', function() { 
     $('#startButton').hide(); 
     $('#main').html('<div class="progress">progress</div><hr><div class="questions"><span class="fraction">1/2</span></div><hr><div class="answers">answers</div>'); 
    }); 

    $('.fraction').each(function(key, value) { 
     $this = $(this); 
     var split = $this.html().split("/"); 
     if(split.length == 2){ 
      $this.html('<span class="top">'+split[0]+'</span><span class="bottom">'+split[1]+'</span>'); 
     }  
    }); 

}); 

我意識到。每()函數不工作,因爲它是傳遞對象到#main這是說明我的問題的jsfiddle單擊「開始按鈕的佔位符」以查看分數

+0

商店中'each'函數並調用它,只要你添加新節點的新插入的節點上。 –

+0

只需將$('。fraction')放入on('click')函數中,問題是什麼? – clancer

+0

你可以檢查dom的更改,像這裏解釋的http://stackoverflow.com/questions/15657686/jquery-event-detect-changes-to-the-html-text-of-a-div,然後運行分數代碼在你發現的任何東西 – clancer

回答

0

您可以在onclick中添加每個函數來調用。

$(document).ready(function() { 

    $('#main').on('click', '#startButton', function() { 
     $('#startButton').hide(); 
     $('#main').html('<div class="progress">progress</div><hr><div class="questions"><span class="fraction">1/2</span></div><hr><div class="answers">answers</div>'); 

     $('.fraction').each(function(key, value) { 
     $this = $(this); 
     var split = $this.html().split("/"); 
     if(split.length == 2){ 
      $this.html('<span class="top">'+split[0]+'</span><span class="bottom">'+split[1]+'</span>'); 
     }  
    }); 

    }); 



}); 

這裏是小提琴 - http://jsfiddle.net/sentmca/kj6Us/

0
$(document).ready(function() { 

    $('#main').on('click', '#startButton', function() { 
     $('#startButton').hide(); 
     $('#main').html('<div class="progress">progress</div><hr><div class="questions"><span class="fraction">1/2</span></div><hr><div class="answers">answers</div>'); 

    $('.fraction').each(function(key, value) { 
     $this = $(this); 
     var split = $this.html().split("/"); 
     if(split.length == 2){ 
      $this.html('<span class="top">'+split[0]+'</span><span class="bottom">'+split[1]+'</span>'); 
     }  
    }); 
    }); 


});