Вместо использования this
используйте event.target
.
$("select[name='cb_country']", "#signup_dialog,#create_dialog").live("change",function(event){
console.log("element",$(event.target));
});
this
, похоже, не работает, потому что кажется, что jQuery не любит несколько элементов в качестве контекста. Не знаю почему.
ОБНОВЛЕНИЕ: Кажется, это проблема с live
, так как работает нормально:
$("select[name='cb_country']", "#signup_dialog,#create_dialog").change(function(){
console.log("element",$(this));
});
Если вы используете jQuery> = 1.7, замените .live
на .on
.
$("#signup_dialog,#create_dialog").on("change", "select[name='cb_country']", function(){
console.log("element",$(this));
});
Если вы используете jQuery> = 1.4.3 и jQuery <= 1.7, тогда используйте <code>.delegate (я предлагаю обновить до 1.7.1 и .on
):
$("#signup_dialog,#create_dialog").delegate("select[name='cb_country']", "change", function(){
console.log("element",$(this));
});
ПРИМЕЧАНИЕ: если элементы добавляются через AJAX, вы должны использовать .on
следующим образом:
$(document).on("change", "#signup_dialog select[name='cb_country'],#create_dialog select[name='cb_country']", function(){
console.log("element",$(this));
});