2010-07-24 2 views
13

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

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

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

Причина Я принимаю JQuery, потому что это единственный фреймворк, который поддерживает все 30 essential controls (учитывая с enough plugins).

+0

Это может быть очень хорошей идеей для плагина jQuery, если вы спросите меня.Но имейте в виду, если пользователи отключить javascript - нет содержимого на странице с таким кодом. –

+2

Да. Так же, как это не будет работать для cappuccino, sproutcore, ukijs или extjs. Это рамки для веб-приложений, а не веб-страниц. –

+0

Создание javascript для записи HTML замедлит вашу страницу очень быстро! Если вы просто не уверены в использовании HTML, вы должны изучить его. Однако, если вам это нужно только по динамическим причинам ... – UpHelix

ответ

2

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

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

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

+2

Coffescript - это совершенно новый язык, который «источник» компилируется в javascript. Он даже не удаленно связан с UI или JQuery. И создание на Coffescript было бы восхитительно, но люди Javascript уже видели это шоу: Java с GWT, Objective-J с Cappuccino и все веб-фреймворки на сервере со всеми другими языками. Я бы не прочь использовать один написанный в coffescript, но написание одного из них сделает входной барьер для других разработчиков выше (и нам нужно сломать стены среди нас, а не создавать их). –

+0

Вопреки этому ... >> но написание одного в нем сделает входной барьер для других разработчиков выше (и нам нужно сломать стены среди нас, а не создавать их). << Пункт CoffeeScript заключается в том, чтобы облегчить барьер для входа, улучшить четкость кода и предоставить синтаксическую модель, которая чище, чем карандаш, который является JS/ECMA. Но, несмотря на это, это вариант, который является просто голубым небом для вашего первоначального вопроса. Я просто подумал, что дам тебе мыслящий момент. – ocodo

+0

Самая большая проблема с coffescript на данный момент - его поддержка. Javascript имеет один из лучших инструментов рефакторинга и типа вывода среди динамических языков. Это объясняется главным образом отсутствием метода_поиск, doesnNoUnderstand, missing_method, эквивалент, что делает это намного проще. Coffescript имеет подсветку синтаксиса (это слишком рано, для еще развивающегося языка). И coffescript, хотя и не такой чуждый большинству программистов JS как java или object-j, наложил бы барьер обучения. Я укореняюсь за это, но его рано подскочить на своей побеждающей стороне, по крайней мере, для фреймворков. –

0

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

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

+0

Вы правы, что это невозможно. Вопрос в следующем: кто-то еще завернул все указанные jQuery-плагины/jquery ui-компоненты таким образом? Посмотрите на волновой пример источника ukijs (http://ukijs.org/examples/core-examples/wave/), чтобы лучше понять, что я имею в виду. –

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> 

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

+0

На самом деле, я больше думаю о стиле dsl для uki.js. Я отредактировал сообщение, чтобы сделать его более ясным. –

1

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

+0

Интересно. Теперь я знаю DHTMLX. Но для инструментария с платными функциями у него почти столько же виджетов, сколько uki (чего не много). Существует также TIBCO, о котором я не упоминал, поскольку он имеет более случайную сложность, чем Sproutcore (что является одной из немногих js-фреймворков, более сложной, чем GWT). –

0

В "г-н Shiny и New" указал, следующий код будет работать:

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

Однако стиль, который вы ищете может быть accieved с помощью функции 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!' 
     }); 
    }); 
}); 
+0

Вопрос гласит: «принимает виджеты и плагины для jQuery UI». Поэтому я не спрашиваю, возможно ли это. Я знаю, что это возможно. Я делал это снова и снова. Мне интересно, если кто-то еще выпустил библиотеку, которая делает * ВСЕ * этого для всех jquery ui виджетов и наиболее важных плагинов. Если он не существует, как только мое решение созреет, я открою его источник. Но я думал, что для сообщества нет необходимости иметь 2 таких проекта. –

1

Вы должны смотреть на Google Closure:

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

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

Смежные вопросы