I am working with a forum script (simple machines forum) It is using this kind of javascript confirmation messages:
<a href="http://domain.net/index.php?action=deletemsg;topic=1.0;msg=1;c6c7a67=f9e1fd867513be56e5aaaf710d5f29f7" onclick="return confirm('Remove this messa开发者_StackOverflowge?');">Remove</a>
And I want to use jgrowl instead that... something like:
<a href="http://domain.net/index.php?action=deletemsg;topic=1.0;msg=1;c6c7a67=f9e1fd867513be56e5aaaf710d5f29f7" onclick="$.jGrowl('Remove this message?', { header: 'Confirmation', sticky: true });"/>Remove</a>
But... how to achieve true/false javascript return using jgrowl? Can be this done in just one line?
Best regards! luciano
edited to support using the href
you can't do it just like that because jGrowl will not be modal and block your page's behaviour.
However you could create a function for the code you want to execute after the choice was done, and then call it from within the notification
check this example http://jsfiddle.net/rcxVG/11/
html
<body>
<a href="javascript: startDemo(1); alert('a');">link for 1</a><br>
<a href="javascript: startDemo(2); ">link for 2</a><br>
Will we notify again<div id="will-notitfy-again">yes</div>
<br>
now... If you want to return then
<a href="http://www.google.com" data-confirmed="false" onclick="return returnModal(this);">click me</a>
</body>
js
function startDemo(id)
{
$.jGrowl("to do not notify again click <a href='javascript:notFor("+id+")' onclick='closeNotif(this);'>here</a>!", { sticky: true });
}
function notFor(id){
alert("not anymore for "+id);
$("#will-notitfy-again").html("remember, notFor was hit for"+id);
}
function closeNotif(panel){
$(".jGrowl-notification").has(panel).find(".jGrowl-close").click();
}
var counter=0;
var confirmedAttr="data-confirmed";
function returnModal(field){
var $field=$(field);
if($field.attr(confirmedAttr)=="true"){
location.href=$field.attr("href");
}else{
counter++;
//save the element somewhere so we can use it (don't know if it has an unique-id)
$(document).data("id"+counter,$field);
$.jGrowl("click <a href='javascript:confirmClick("+counter+")' onclick='closeNotif(this);'>here</a> to go to google!", { sticky: true });
return false;
}
}
function confirmClick(variableId){
var $field=$(document).data("id"+variableId);
$field.attr(confirmedAttr,"true");
$field.click();
}
Let me know if this was good enought
精彩评论