Пользовательский интерфейс jQuery без HTML

Есть ли проект (с открытым исходным кодом), который использует виджеты и плагины для jQuery UI, но позволяет нам использовать их без настройки HTML?

Похоже на Ext-js и Sproutcore, но без обычной сложности и отсутствия текучести, и больше похоже на Cappuccino, но без необходимости использования Mac и ужасных времен загрузки из Objective-j (который также не имеет поддержки IDE). Кроме того, больше похоже на Ukijs, но с большим количеством виджетов. И вроде как Pajamas и GWT, но без отсутствие виджетов, шаг предварительной компиляции и/или Java. Например:

uki({
  view: "Button", text: "Hello world!",
  rect: "120 80 180 24",
  click: function() { alert(this.text());
}).attachTo( document.getElementById("test") );

Причина, по которой я беру jQuery, заключается в том, что это единственная веб-инфраструктура, которая поддерживает все 30 основных элементов управления (данный с достаточно плагинов).

Ответы

Ответ 1

Я не думаю, что на данный момент существует подходящая DSL, самая близкая вещь, о которой я могу думать, это CoffeeScript

http://jashkenas.github.com/coffee-script/

Это также будет хорошей отправной точкой для создания.

Ответ 2

Посмотрим, понимаю ли я этот вопрос. Вместо

<script>
  $(function(){
    $('a').button();
  });
</script>
<body>
  <button id="foo">Foo</button>
  <button id="bar">Bar</button>
</body>

Вы хотите

<script>
  $(function(){
    $('body').append($('<button>').attr('{ id: "foo" }').html('Foo').button());
    $('body').append($('<button id="bar">Bar</button>').button());
  });
</script>
<body>
</body>

Соответствует ли это вашим потребностям? В конце дня вам все равно нужно указать детали кнопки (где она идет, ее текст, что происходит, когда вы нажимаете на нее) независимо от того, какой синтаксис есть.

Ответ 3

DHTMLX похож на ExtJS, к сожалению, включает в себя некоторые из его недостатков.

Ответ 4

Вы должны взглянуть на Google Closure:

http://code.google.com/closure/

По-моему, он соответствует именно тому, что вы просите.

Ответ 5

Что мешает вам использовать JavaScript и jQuery UI, как сейчас?

Насколько я знаю, для загрузки веб-страницы в веб-браузере текущего поколения требуется (X) HTML-документ, но ничто не мешает вам сделать этот документ заглушкой и полностью создать приложение на JavaScript.

Ответ 6

Как "Mr. Shiny and New" отметил, что следующий код будет работать:

$('body').append($('<button>').attr('{ id: "foo" }').html('Foo').button());

Однако стиль, который вы ищете, можно получить с помощью функции appendTo():

$('<button id="foo"></button>')
    .button({
        label: "Hello world!",
    }).click(function () {
        //doSomething

    }).appendTo('#test');

Кроме того, приведенный выше код возвращает объект "button", который позволяет назначать объект переменной для последующего повторного использования:

// set up the button
var a = $('<button/>').button({
    label: 'Hello world!'
}).offset({
    top: 80,
    left: 120
}).width(180).height(24)
.click(function () {
    // dosomething
}).appendTo('body');

// hide then show and rename (if it takes your fancy)
a.hide(300, function () {
    a.show(300, function () {
        a.button( "option" , {
            label: 'Hello to the world again!'
        });
    });
});