У меня есть метод, определенный следующим образом:
var product = $('#selProduct:visible');
var note=$('#bbdata');
product.selectProduct({
target: note,
url: 'product.php',
data: { ajax: true }
}).trigger('change');
$.fn.selectProduct= function (options) {
var defaults = {
key: "id",
value: "label"
};
var settings = $.extend({}, defaults, options);
if (!(settings.target instanceof $)) settings.target = $(settings.target);
return this.each(function () {
var $$ = $(this);
$$.bind('change isVisible', function () {
var data = null;
if (typeof settings.data == 'string') {
data = settings.data + '&' + this.name + '=' + $$.val();
} else if (typeof settings.data == 'object') {
data = settings.data;
data[this.name] = $$.val();
}
$.ajax({
url: settings.url,
data: data,
type: (settings.type || 'get'),
dataType: 'html',
success: function (j) {
settings.target.html(j);
}
}); // ajax
}); //change isVisible
}); // new function
}; // function
function show_product() {
hide_group2();
$("#product_zone2").show('fast', function(){
$("#selProduct").trigger('isVisible');
});
}
Как видите, селектор имеет фильтр :visible
.Этот код работает нормально, когда начальный элемент виден.Но не работает с элементами, которые загружены с display:none
.Я сделал div видимым с помощью show (), но события не регистрируются.События определены в методе selectProduct.
Как я могу убедиться, что это работает с элементами, которые были сделаны видимыми после загрузки страницы?