Javascript 内联确认后运行函数
我想在内联确认后运行所有jQuery代码,这可能吗 大概是这样的:Javascript 内联确认后运行函数,javascript,jquery,html,Javascript,Jquery,Html,我想在内联确认后运行所有jQuery代码,这可能吗 大概是这样的: <a href="" onclick="return confirm('are you sure ?')" > test link </a> 对我来说,确认以内联方式进行,而不是在点击jQuery时进行,这一点很重要。以下是适用于您的代码 <a href="#"> test link </a> 你可以这样做 function onConfirm() { if (!co
<a href="" onclick="return confirm('are you sure ?')" > test link </a>
对我来说,确认以内联方式进行,而不是在点击jQuery时进行,这一点很重要。以下是适用于您的代码
<a href="#"> test link </a>
你可以这样做
function onConfirm()
{
if (!confirm('are you sure ?'))
alert('clicked cancel');
else
alert('clicked confirmed');
};
<a href="#" onclick='onConfirm();'> test link </a>
这个怎么样:
<a href="#" onclick="return confirmMessage('are you sure ?');"> test link </a>
function confirmMessage(msg) {
if (confirm(msg)) {
alert('confirmed');
} else {
alert('failed');
}
}
或
尽量避免使用内联单击处理程序。我还将在您打算进行此处理的锚点上设置一个类或id。否则,您将在文档中的每个锚元素上绑定此确认
<a href="#whatever" class="confirm-me">Confirm</a>
$(document).on('click.confirm','a.confirm-me',function() {
if (confirm('Are you sure ?')){
alert('ok is clicked');
// Returns true;
}else{
alert("cancel is click");
// Returns false;
}
});
您可以更改内嵌代码吗?更好的是,您可以将第一个函数移出HTML并改用事件处理程序吗?是的,或者在使用jquery创建后覆盖它。HTML内部的Javascript是许多问题的根源,正如我之前所说的,我无法将内联代码移动到事件处理程序。因为HTML元素在php文件中创建,我可以翻译确认消息。但在js文件中,我不能使用php代码,或者如果页面中有多个锚定标记,并且可以调用该标记上的click事件,则可以将类添加到锚定。
<a href="#" onclick="return confirmMessage('are you sure ?');"> test link </a>
function confirmMessage(msg) {
if (confirm(msg)) {
alert('confirmed');
} else {
alert('failed');
}
}
<a href="#" onclick="whenConfirm(confirm('are you sure ?')).done(confirmed).fail(canceled);"> test link </a>
function whenConfirm(is_confirmed) {
var d = $.Deferred();
is_confirmed ? d.resolve() : d.reject();
return d.promise();
}
function confirmed() {
alert('confirmed');
}
function canceled() {
alert('canceled');
}
<a href="#whatever" class="confirm-me">Confirm</a>
$(document).on('click.confirm','a.confirm-me',function() {
if (confirm('Are you sure ?')){
alert('ok is clicked');
// Returns true;
}else{
alert("cancel is click");
// Returns false;
}
});