Вам нужно сделать обработчик известно, что-то вроде этого:
Путь это работает, окно загружается и команда jQuery(document).ready(function() {//code})
затем вызывает функцию, заданную в качестве аргумента. Эта функция при запуске найдет элементы, в данном случае ваши английские и немецкие кнопки, и даст им некоторый протокол, когда происходит событие click
. Это то, что делает функция bind("event",my_named_handler)
. Аргументами являются "event"
, который описывает тип ожидаемого события, а обработчик - это функция, которая будет обрабатывать событие. Если вы назначаете это как bind("click",function(){//code})
, функция остается анонимной и на нее нельзя ссылаться. Когда вы вызываете unbind("click",my_named_handler)
, ваш код будет искать обработчики, связанные с вашим элементом и удаляющие их. Если вы использовали способ анонимной функции, вы не сможете ссылаться любым простым способом. Определив обработчик в переменной, вы можете передать один и тот же обработчик как bind
, так и undbind
, что делает связь и отмену связи, поскольку функция точно знает, какой обработчик вы ссылаетесь в обоих случаях.
bind("event",handler)
это функция, которая связывает элемент для слушателя для события, и
var german_handler = function() {
// do german clicky stuff
};
var english_handler = function() {
// do english clicky stuff
};
jQuery(document).ready(function() {
$('#German').bind("click",german_handler);
$('#German').bind("click",function() {
$('#German').unbind("click",german_handler);
});
$('#English').bind("click",english_handler);
$('#English').bind("click",function() {
$('#German').bind("click",german_handler);
});
});
Кроме того, лучше использовать #German
вместо a#German
, id
тегов обычно должно быть уникальными.
Примечание: при использовании селектора id не префикс его с помощью селектора элементов ... '# German' вместо' a # German' –
Почему вы используете встроенные обработчики кликов? –
В вашем вызове 'bind' отсутствует второй аргумент, функция обработчика событий. Кроме того, вы должны использовать 'on' и' off', поскольку 'bind' и' unbind' устарели. – Barmar