jQuery на функция не стреля в мустаци?

Използвам $(Mustache.to_html за изобразяване на шаблон на моята уеб страница - ако проверя действителния html, изобразен на страницата, той е както по-долу:

<script id="myTemplate" type="text/x-template">
<tr data-name="{{name}}">
    <td>
    <select id="titlesDropDown" name="SelectedTitleId"><option value="">--Select Title--</option>
    <option value="1">Mr</option>
    <option value="2">Miss</option>
    <option value="3">Mrs/Corporate</option>
    <option value="4">Dr</option>
    </select>
    </td>
    <td>{{name}}</td>
    <td><input type="text" name="Age" value=""/></td>
</tr>
</script>

Проблемът, който имам, е, че искам да задействам функция, когато падащото меню за заглавие се промени. В готовия документ добавих следното:

$(document).ready(function () {   
    $('#titlesDropDown').on('change', function () {           
        alert('Dropdown change fired');
    });
});

Има ли нещо друго, което трябва да направя, за да свържа събитието за промяна до изобразен шаблон с мустаци?


person TheRiddler    schedule 24.01.2015    source източник


Отговори (1)


Тук използвате делегиране, но то отново е на динамично генериран възел.

Опитайте това вместо това:

 $(document).on('change', ''#titlesDropDown'', function () { 

Или, алтернативно, можете просто да замените document с елемент, присъстващ в DOM по време на зареждане.

person karthikr    schedule 24.01.2015
comment
Бихте могли, без да навредите, но не е нужно.. ако използвате document, не е необходимо да се увива с document.ready - person karthikr; 25.01.2015