Мы создадим логический индекс с cumsum
для подмножества слов
f1 <- function(vec, n) {
vec[cumsum(nchar(vec)) < n]
}
f1(list, 10)
#[1] "the" "quick"
f1(list, 15)
#[1] "the" "quick" "brown"
Вы близки к решению, просто получаете не тот объект. Это должно быть так:
jQuery(function() {
var dlg = jQuery("#dialog").dialog({
draggable: true,
resizable: true,
show: 'Transfer',
hide: 'Transfer',
width: 320,
autoOpen: false,
minHeight: 10,
minwidth: 10
});
dlg.parent().appendTo(jQuery("form:first"));
});
В первую очередь это потому, что jQuery перемещает диалог за пределы тегов формы, используя DOM . Переместите его обратно в теги формы, и оно должно работать нормально. Вы можете убедиться в этом, проверив элемент в Firefox.
Переместите диалоговое окно в правильном направлении, но это следует делать только при нажатии кнопки, открывающей диалоговое окно. Вот некоторый дополнительный код в образце пользовательского интерфейса jQuery:
$('#create-user').click(function() {
$("#dialog").parent().appendTo($("form:first"))
$('#dialog').dialog('open');
})
Добавьте вашу asp: кнопку
в диалог, и она работает хорошо.
Примечание: вы должны изменить
$('#divname').parent().appendTo($("form:first"));
Using this code solved my problem and it worked in every browser, Internet Explorer 7, Firefox 3, and Google Chrome. I start to love jQuery... It's a cool framework.
I have tested with partial render too, exactly what I was looking for. Great!
<script type="text/javascript">
function openModalDiv(divname) {
$('#' + divname).dialog({ autoOpen: false, bgiframe: true, modal: true });
$('#' + divname).dialog('open');
$('#' + divname).parent().appendTo($("form:first"));
}
function closeModalDiv(divname) {
$('#' + divname).dialog('close');
}
</script>
...
...
<input id="Button1" type="button" value="Open 1" onclick="javascript:openModalDiv('Div1');" />
...
...
<div id="Div1" title="Basic dialog" >
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
postback test<br />
<asp:Button ID="but_OK" runat="server" Text="Send request" /><br />
<asp:TextBox ID="tb_send" runat="server"></asp:TextBox><br />
<asp:Label ID="lbl_result" runat="server" Text="prova" BackColor="#ff0000></asp:Label>
</ContentTemplate>
<asp:UpdatePanel>
<input id="Button2" type="button" value="cancel" onclick="javascript:closeModalDiv('Div1');" />
</div>
Решение Роберта Маклина, набравшее наибольшее количество голосов, является правильным на 99%. Но единственное дополнение, которое может потребоваться, как и я, - это всякий раз, когда вам нужно открыть это диалоговое окно jQuery, не забудьте добавить его к родительскому элементу. Как показано ниже:
var dlg = $ ('# questionPopup'). Dialog ('open');
dlg.parent (). appendTo ($ ("form: first"));
FWIW, метод form: first у меня не сработал.
Однако метод из той статьи в блоге сработал:
http://blog.roonga.com. au / 2009/07 / using-jquery-ui-dialog-with-aspnet-and.html
В частности, добавление этого в объявление диалога:
open: function(type,data) {
$(this).parent().appendTo("form");
}
ken Ответ выше сделал уловок для меня. Проблема с принятым ответом состоит в том, что она работает только, если у вас есть один модаль на странице. Если у вас есть несколько модали, вам нужно будет сделать это встроенным в «открытом» параметрам при инициализации диалогового окна, а не после того, как этот факт.
open: function(type,data) { $(this).parent().appendTo("form"); }
Если вы делаете то, что первый принятый ответ сообщает вам с несколькими модалами, вы получите только последний модал на странице, работающих поступлениям правильно, не все их.
Фантастика! Это решило мою проблему с ASP: событие кнопки не срабатывает внутри модального окна jQuery. Обратите внимание: использование модального окна jQuery UI со следующими параметрами позволяет запускать событие кнопки:
// Dialog Link
$('#dialog_link').click(function () {
$('#dialog').dialog('open');
$('#dialog').parent().appendTo($("form:first"))
return false;
});
Следующая строка является ключом к тому, чтобы это работало!
$('#dialog').parent().appendTo($("form:first"))