2014-11-24 4 views
0

Я динамически добавляю список якорных тегов в div с идентификатором join. Почему-то мой обработчик jQuery (это обработчик?) Не обрабатывает клики.jQuery Click Not Working/Registering

$(document).ready(function() { 
    $("#join").click(function() { 
     console.log("Clicked"); 
    }); 
}); 

«Щелкнуть» не отображается в моей консоли. У меня большая головная боль после Гуглинга около 2 часов.

Заранее спасибо.

+0

Вы можете добавить свой html-файл? – Yaje

+0

Вы включаете библиотеку jQuery? –

+0

ли элемент '# join' создается динамически .. также есть несколько экземпляров элемента' # join' –

ответ

0

попробовать

$(document).ready(function() { 
    $(document).on.('click','#join',function() { 
     console.log("Clicked"); 
    }); 
}); 

Примечание: это будет только обнаружить первый экземпляр #join элемента. вы можете использовать классы вместо идентификатора

вам нужно использовать документ в качестве селектора для обнаружения генерируемых элементов

+0

Работал! Спасибо! – user3650841

+0

Возможно ли получить информацию (например, .data ("target")), используя это? $ (this) .data ("target") не работает. – user3650841

+0

это будет. если вы использовали классы вместо ids – Yaje

0

Когда вы создаете обработчик из селектора, обработчик добавляется ко всем элементам, которые соответствуют селектору при запуске селектора (и обработчика). Если впоследствии вы добавите элементы, которые будут СЕЙЧАС соответствовать селектору, обработчик не будет автоматически добавлен. Эти элементы не присутствовали, когда селектор сначала бежал.

Когда вы добавляете новые элементы, добавьте обработчик кликов к тем новым элементам в момент их добавления.

Настоятельно рекомендуется не иметь на странице нескольких элементов с одинаковым значением «id». Рассмотрим использование класса для индикатора группировки.

4

Вы также можете попробовать это выход, это является наиболее эффективным способом, как вы можете иметь контроль над событием клика.

$(document).ready(function() { 
    $("#join").on('click',function() { 
     $('#join').off('click'); 
     console.log("Clicked"); 
    }); 
});