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

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

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

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

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

6 ответов

Решение

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

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

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

Посмотрим, пойму ли я вопрос. Вместо

<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>

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

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

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

На мой взгляд, это точно соответствует тому, что вы просите.

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

Как указал "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');

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

// 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!'
        });
    });
});

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

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

Другие вопросы по тегам