2015-09-03 34 views
1

我正在使用appgyver(javascript)編寫單頁面應用程序。有許多列表是使用JavaScript動態編寫的(在外部API調用之後)。每個列表包含一個項目,當點擊/按下時,我想要發射一個不同的js方法。Appgyver - 點擊JQuery並不適用於動態書寫項目

function write_a_list(some_array) 
    { 
     $('#some_list').html(""); 

     for (indexor =0; indexor < some_array.length; indexor++) 
      { 
       var this_option_div = $('<div>'); 
       this_option_div.addClass('item'); 
       this_option_div.addClass('some_list_item'); 
       this_option_div.html("Button: " + indexor); 
       $('#some_list').append(this_option_div); 
      } 
    } 

    $(document).on('click', '.some_list_item', function() 
    { 
    supersonic.logger.debug('some_list_item clicked'); 
    alert('some_list_item clicked'); 
    }); 

例如,一個數組被傳遞給write_a_list函數。如果一個項目被點擊,它應該被檢測到並且發出警報。但是,這種行爲沒有被遵守。有沒有一種方法可以通過使用jquery'on'方法來實現?

回答

2

您正在使用this_option_div.addClass('some_list_item');,然後在可能不存在的ID上調用click事件。

將其更改爲:

$(document).on('click', '.some_list_item', function() { ... } 

編輯////

你能嘗試最接近的父母選擇不是動態的,而不是文件?

$('.static-wrapper').on('click', '.some_list_item', function() { ... }

+0

對不起 - 這是一個錯字。我更新了這個問題 - 在更正後仍然不起作用:/ – user714852

+0

最接近的父代選擇器方法非常完美!謝謝! – user714852