Вот многоразовый класс для выполнения времени. Пример включен в код:
/*
Help track time lapse - tells you the time difference between each "check()" and since the "start()"
*/
var TimeCapture = function () {
var start = new Date().getTime();
var last = start;
var now = start;
this.start = function () {
start = new Date().getTime();
};
this.check = function (message) {
now = (new Date().getTime());
console.log(message, 'START:', now - start, 'LAST:', now - last);
last = now;
};
};
//Example:
var time = new TimeCapture();
//begin tracking time
time.start();
//...do stuff
time.check('say something here')//look at your console for output
//..do more stuff
time.check('say something else')//look at your console for output
//..do more stuff
time.check('say something else one more time')//look at your console for output
Мне просто нужно было решить ту же проблему. Ключом к тому, чтобы это работало, было то, что диалоговое окно
должно быть частично инициализировано в обработчике события click
для ссылки, с которой вы хотите использовать функцию подтверждения (если вы хотите использовать это для более чем одной ссылки). Это связано с тем, что целевой URL-адрес для ссылки должен быть введен в обработчик событий для нажатия кнопки подтверждения. Я использовал класс CSS, чтобы указать, какие ссылки должны иметь поведение подтверждения.
Вот мое решение, отведенное для примера.
<div id="dialog" title="Confirmation Required">
Are you sure about this?
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#dialog").dialog({
autoOpen: false,
modal: true
});
});
$(".confirmLink").click(function(e) {
e.preventDefault();
var targetUrl = $(this).attr("href");
$("#dialog").dialog({
buttons : {
"Confirm" : function() {
window.location.href = targetUrl;
},
"Cancel" : function() {
$(this).dialog("close");
}
}
});
$("#dialog").dialog("open");
});
</script>
<a class="confirmLink" href="http://someLinkWhichRequiresConfirmation.com">Click here</a>
<a class="confirmLink" href="http://anotherSensitiveLink">Or, you could click here</a>
Я считаю, что это сработает для вас, если вы сможете сгенерировать свои ссылки с помощью класса CSS ( confirmLink
, в моем примере).
Вот jsfiddle с код в нем.
В интересах полного раскрытия информации, я '
Подойдет ли это?
$("ul li a").click(function(e) {
e.preventDefault();
$('#confirmDialog').show();
var delete_path = $(this).attr('href');
$('#confirmDialog a.ok').unbind('click'); // just in case the cancel link
// is not the only way you can
// close your dialog
$('#confirmDialog a.ok').click(function(e) {
e.preventDefault();
window.location.href = delete_path;
});
});
$('#confirmDialog a.cancel').click(function(e) {
e.preventDefault();
$('#confirmDialog').hide();
$('#confirmDialog a.ok').unbind('click');
});
Я обнаружил, что ответ Пола не совсем сработал, поскольку способ, которым он устанавливал параметры ПОСЛЕ того, как диалоговое окно было создано при событии щелчка, было неправильным. Вот мой код, который работал. Я не адаптировал его для примера Пола, но разница только в том, что некоторые элементы названы по-разному. Вы должны суметь это решить. Исправление находится в установщике диалогового окна для кнопок в событии щелчка.
$(document).ready(function() {
$("#dialog").dialog({
modal: true,
bgiframe: true,
width: 500,
height: 200,
autoOpen: false
});
$(".lb").click(function(e) {
e.preventDefault();
var theHREF = $(this).attr("href");
$("#dialog").dialog('option', 'buttons', {
"Confirm" : function() {
window.location.href = theHREF;
},
"Cancel" : function() {
$(this).dialog("close");
}
});
$("#dialog").dialog("open");
});
});
Надеюсь, это поможет кому-то еще, поскольку этот пост изначально привел меня к правильному пути, и я подумал, что лучше опубликую исправление.
Как было сказано выше. Предыдущие посты вывели меня на правильный путь. Вот как я это сделал. Идея в том, чтобы рядом с каждой строкой в таблице было изображение (сгенерированное PHP-скриптом из базы данных). При щелчке по изображению, пользователь будет перенаправлен на URL, и в результате, соответствующая запись будет удалена из базы данных при отображении некоторых данных, относящихся к кликнувшей записи в диалоге jQuery UI Dialog.
Код JavaScript:
$(document).ready(function () {
$("#confirmDelete").dialog({
modal: true,
bgiframe: true,
autoOpen: false
});
});
function confirmDelete(username, id) {
var delUrl = "/users/delete/" + id;
$('#confirmDelete').html("Are you sure you want to delete user: '" + username + "'");
$('#confirmDelete').dialog('option', 'buttons', {
"No": function () {
$(this).dialog("close");
},
"Yes": function () {
window.location.href = delUrl;
}
});
$('#confirmDelete').dialog('open');
}
Диалог div:
<div id="confirmDelete" title="Delete User?"></div>
Ссылка на изображение:
<img src="img/delete.png" alt="Delete User" onclick="confirmDelete('<?=$username;?>','<?=$id;?>');"/>
Таким образом, вы можете передать значения цикла PHP в диалоговое окно. Единственный недостаток - это использование GET-метода для фактического выполнения действия.