На веб-странице у меня есть много таблиц с class='gsresponsive'.
У меня есть плагин jQuery, который я могу указать на несколько таблиц с классом gsresponsive и обернуть их в 2 div, как показано ниже. Ширина 2-го div будет установлена на 100%, если ширина экрана> 767px, иначе ширина будет установлена на 1024px (если не переопределено). Когда страница загружается, будет применена соответствующая ширина, но я хочу, чтобы плагин снова вызывался при изменении размера окна. Но этого не происходит.
Почему мой плагин не запускается повторно при увеличении окна и не применяет новую ширину, когда экран переходит в любую сторону от 767 пикселей?
<div style="overflow:auto;">
<div style="width:100%"> <!-- screen size dependant-->
<table> ....</table>
</div>
<div>
Мой плагин называется так...
$(document).ready(function() {
$("table.gsresponsive").gstable();
});
Мой плагин выглядит так...
(function($) {
$.fn.extend({
gstable: function(options) {
//Define default options.
var defaults = {
scrsplit : 767, //Modify table when screen gets to this size.
tblwidth : "1024px" //Default table width when on a small screen (screen width < scrsplit).
}
var o = $.extend(defaults, options);
var $obj = $(this);
return this.each(function() {
$obj.wrap("<div class=\"table-wrapper\" style=\"overflow:auto;\" />");
if ($(window).width() < o.scrsplit){
$obj.wrap("<div style=\"width:"+o.tblwidth+"\" />");
} else {
$obj.wrap("<div style=\"width:100%;\" />");
}
$(window).load(updateOvalTables);
$(window).bind("resize", updateOvalTables);
});
var switched = false;
var updateOvalTables = function() {
alert('updating');
if (($(window).width() < o.scrsplit) && !switched ){
switched = true;
splitOvalTable($obj);
//return true;
} else if (switched && ($(window).width() > o.scrsplit)) {
switched = false;
unsplitOvalTable($obj);
}
};
function splitOvalTable(elem) {
elem.parent().css("width", o.tblwidth);
}
function unsplitOvalTable(original) {
elem.parent().css("width", "100%");
}
}
});
})(jQuery);
$(window).resize(function()
, например.$(window).resize(function() { $("table.gsresponsive").gstable(); });
однако я не знаю, решит ли это вашу проблему. - person martincarlin87   schedule 15.02.2013