2013-03-23 1 views
0

У меня возникла ошибка при попытке использовать .click на добавленном элементе div, поэтому я попытался использовать .on вместо этого, но это не решило его. Что не так с последними строками в этом коде?Ошибка .click на добавленном элементе, даже с .on

Элемент .table является расстраивает один:

$('#mapH').focusout(function(){ 
    var i = 0; 
    while (i < $('#mapH').val()) { 
     $('#mapCreator').append("<div class='row'></div>"); 

     var j = 0; 
     while(j < $('#mapW').val()) { 
      $('.row').last().append("<div class='table empty "+i+"-"+j+"'></div>"); 
      j++; 
     } 
     i++; 
    } 
    $('.table').css("width", 100/$('#mapW').val()+"%"); 
    $('.row').css("height", $('.table').width()); 
}) 



$('.table').on("click", function(){ 
    //$('body').append("<div class='popup'></div>"); 
    alert('hej'); 
}) 
+0

там не должно быть запятой позади закрытия круглых скобках? – Appleshell

+2

Какая ошибка? Пожалуйста, уточните вашу проблему. –

+0

какая ошибка вы получаете? –

ответ

1

Вы, вероятно, имеют дополнительное пространство в классе таблицы после того, как пустой. Измените class='table empty " на class='table empty" и делегируйте событие родительскому .table.empty или документу.

$(document).on("click",'[class^=table]', function(){ 
    //$('body').append("<div class='popup'></div>"); 
    alert('hej'); 
}); 
+0

Если пробелы удалены, как вы полагаете, это не приведет к таким классам, как 'empty0-0'? а затем '.table.empty' никогда не совпадет? –

+0

обновил мой ответ, если он работает. – Adil

+0

Мне понравился первый селектор ('.table.empty') лучше, потому что он не зависит от того,' '' 'начало' класса', я бы просто изменил класс на нечто вроде этой таблицы 'class = 'empty empty0- 0' или 'class = 'table empty cell0-0' –

0

Вы можете попробовать:

$("div .table").click(function(){ 

// code here 

alert("call"); 

}); 
+0

if '$ (". Table "). On (" click ", ...' не работает, тогда '$ (" div .table "). On (" click ", ...' или '$ (" div .table "). click (...' также не будет работать, потому что он использует более конкретный селектор. –

+0

работает над моим локальным. – 2013-03-25 05:44:51

Смежные вопросы