Если вы готовы сделать это за пределами Bash, вы должны изучить систему очередей на работу.
Например, есть очередь GNU или PBS . А для PBS, вы можете посмотреть Maui для конфигурации.
Обе системы потребуют некоторой конфигурации, но вполне возможно разрешить одновременное выполнение определенного количества заданий, только начиная новые задания в очереди, когда завершенное задание завершается. Как правило, эти системы очередей заданий используются в суперкомпьютерных кластерах, где вы хотите выделить определенный объем памяти или вычислительное время для любого заданного пакетного задания; тем не менее, нет причин, по которым вы не можете использовать один из них на одном настольном компьютере без учета времени вычислений или ограничений памяти.
Поместите свои свойства CSS в класс, затем сделайте что-нибудь вроде этого:
$("#displayPanel div").live("click", function(){
$(this).addClass('someClass');
});
Затем, где находятся ваши «другие функции», сделайте что-нибудь вроде:
$("#myButton").click(function(){
$("#displayPanel div").removeClass('someClass');
});
Вы можете удалить определенные CSS, находится на элементе следующим образом:
$(this).css({'background-color' : '', 'font-weight' : ''});
Хотя я согласен с Каримом в том, что вам, вероятно, следует использовать классы CSS.
Вы можете использовать метод removeAttr, если хотите удалить все встроенные стили, которые вы добавили вручную с помощью javascript. Лучше использовать классы CSS, но вы никогда не знаете.
$ ("# displayPanel div"). RemoveAttr ("style")
Если вы не хотите использовать классы (что вам действительно следует), единственный способ добиться желаемого - сначала сохранить измененные стили:
var oldFontSize = $(this).css("font-size");
var oldBackgroundColor = $(this).css("background-color");
// set style
// do your thing
$(this).css("font-size",oldFontSize);
// etc...
jQuery.fn.extend
({
removeCss: function(cssName) {
return this.each(function() {
var curDom = $(this);
jQuery.grep(cssName.split(","),
function(cssToBeRemoved) {
curDom.css(cssToBeRemoved, '');
});
return curDom;
});
}
});
/*example code: I prefer JQuery extend so I can use it anywhere I want to use.
$('#searchJqueryObject').removeCss('background-color');
$('#searchJqueryObject').removeCss('background-color,height,width'); //supports comma separated css names.
*/
ИЛИ
//this parse style & remove style & rebuild style. I like the first one.. but anyway exploring..
jQuery.fn.extend
({
removeCSS: function(cssName) {
return this.each(function() {
return $(this).attr('style',
jQuery.grep($(this).attr('style').split(";"),
function(curCssName) {
if (curCssName.toUpperCase().indexOf(cssName.toUpperCase() + ':') <= 0)
return curCssName;
}).join(";"));
});
}
});
Вы можете удалить встроенные свойства следующим образом:
$(selector).css({'property':'', 'property':''});
Например:
$(actpar).css({'top':'', 'opacity':''});
По сути, это упомянуто выше, и это определенно помогает.
Кстати, это полезно в случаях, когда вам нужно очистить состояние после анимации. Конечно, я мог бы написать полдюжины классов, чтобы справиться с этим, или я мог бы использовать свой базовый класс и #id, сделав некоторую математику и очистив встроенный стиль, который применяет анимация.
$(actpar).animate({top:0, opacity:1, duration:500}, function() {
$(this).css({'top':'', 'opacity':''});
});
Обратите внимание: в зависимости от свойства вы можете установить для него значение «Авто».