javascript
  • jquery
  • 2014-12-05 42 views 1 likes 
    1

    我在網上搜索周圍,但不能做這項工作創造了一個按鈕..jQuery的事件不觸發JavaScript中的innerHTML與

    進出口創造一個js.file的對話框。在這個js我有一個創建一個按鈕的功能,但與innerHTML的...

    var divButtons = document.getElementById('buttons_insert1');  
        var buttons_insert = "<button id='okcad' class='button_ok' value='' > <img src='/php/Images/OK.png' alt='OK' /> OK </button>"; 
        divButtons.innerHTML = divButtons.innerHTML + buttons_insert; 
    

    ,並在index.html的我有一個jQuery函數來獲取點擊的事件。

    $("#okcad1").click(function() 
    { 
        alert('hello world'); 
    } 
    

    但這不是working..the事件不火...

    有人能幫助我嗎?

    問候!

    拉斐爾S.

    回答

    4

    使用event delegation

    $(document).on("click" , "#buttons_insert1 #okcad1" , function() 
    { 
        alert('hello world'); 
    }); 
    
    +1

    @downvoters關心評論 – 2014-12-05 13:24:46

    +0

    感謝阿米特和JqueryKing!但只有JQueryKing的答案工作...你能告訴我爲什麼嗎?謝謝! – 2014-12-05 13:35:47

    +0

    謝謝你。我使用了JavaScript等價物,它工作得很完美。拉斐爾,我懷疑阿米特的答案是將事件分配給錯誤的元素。 – ouflak 2015-04-09 14:00:24

    2

    需要事件的委派,因爲你DOM加載後追加它。對於使用jQuery.on

    $("#buttons_insert1").on('click', '#okcad1', function() { 
        alert('hello world'); 
    } 
    

    只是click將事件綁定到當代碼執行得到,所以你需要事件代表團的技術,它存在於DOM元素。

    相關問題