2013-03-11 6 views
0

im new to stackoverflow и хотел бы узнать, можете ли вы помочь мне с помощью функции .on() с помощью coffescript .. im tyring для переноса .live(), потому что я хочу все как предполагается, чтоJQuery .on() function with coffescript

$('#employee-select') 

    .live('click',() -> 
    if (!$('#employee-search-panel').is(':visible')) 
     employeeLiveSearch() 
     $('#employee-search-panel').slideDown() 
    else 
     $('#employee-search-panel').slideUp() 
    end 

) 

то, что я придумал это

$(document) 

    .on('click', '#employee-select',() -> 
    if (!$('#employee-search-panel').is(':visible')) 
     employeeLiveSearch() 
     $('#employee-search-panel').slideDown() 
    else 
     $('#employee-search-panel').slideUp() 
    end 

) 

миль вопрос есть .... является ли это правильным решением? сделав документ, а затем добавив селектор рядом с нажатием кнопки?

С уважением

+0

если его работа над правильным правильным правилом ... рассмотрите вопрос о размещении вопроса на codereview.stackexchange.com – dakait

ответ

0

да это правильно .. однако это производительность повышается всегда лучше использовать статический родительский элемент в документе, то сам документ ..

$(document) .on('click', '#employee-select',function(){ //<--- replace document with closest static parentelement 
    if (!$('#employee-search-panel').is(':visible')) 
    employeeLiveSearch() 
    $('#employee-search-panel').slideDown() 
    else 
    $('#employee-search-panel').slideUp() 
    end 

}) 

links читать больше о on события

0

Это кажется правильным, поскольку вы его написали, Это путь к delegate the event to the existing parent item на странице.

Хотя вы можете попробовать делегировать closest existing parent, который доступен во время инициализации dom.

как который держит '#employee-select' (parent of this elem):

$('parent of this').on('click', '#employee-select',() -> 

Хотя (document) является родителем всех элем на странице, так что будет работать абсолютно нормально.

$(document).on('click', '#employee-select',() ->