Používam jednoduchý spôsob, ako vytvoriť vyskakovacie okno, snažím sa pridať tlačidlo, ktoré zatvorí vyskakovacie okno, ale nič sa nestalo, keď naň kliknem.
- pripojená knižnica vzorového modelu
nižšie je kód jQuery
jQuery("a.postpopup").click(function(){
id = jQuery(this).attr("rel");
url="http://localhost/website/?page_id=81";
jQuery("<div id="ajax-popup"></div>").hide().appendTo("body").load(url+"&id="+id).modal();
return false;
});
//btn to close the popup
jQuery("#btnclose").click(function(){
alert("hello"); // close code should be placed here but alert didn"t executed.
});
nižšie je kód na mojej stránke šablón (vyskakovacie okno)
<?php
/*
Template Name: my template
*/
?>
<?php
$post = get_post($_GET["id"]);
?>
<?php if ($post) : ?>
<?php setup_postdata($post); ?>
<div class="whatever">
<div id="popheader">
<img id="popimg" src="/images/http://localhost/website/wp-content/uploads/2014/12/logo1.png" width="200" height="auto"/>
<font id="popup-title" class="entry-title" > <?php the_title()?> </font>
<input type="button" id="btnclose" /> //btn to close the pop
</div>
<table class="tblcontent">
<tr>
<td id="popup-content">
<?php the_content(); ?>
</td>
</tr>
</table>
</div>
<?php endif; ?>
Ako teda môžem toto okno uzavrieť
odpovede:
0 pre odpoveď č. 1pretože #btnclose
ešte neexistuje. Pri načítavaní obsahu ajax by ste mali pripájať udalosti až po načítaní obsahu.
jQuery("a.postpopup").click(function(){
id = jQuery(this).attr("rel");
url="http://localhost/website/?page_id=81";
jQuery("<div id="ajax-popup"></div>")
.hide()
.appendTo("body")
.load(url+"&id="+id, function(data){
jQuery(data).find("#btnclose").click(function(e){
alert("Button clicked");
});
})
.modal();
return false;
});
Alebo upravte šablónu a pripojte funkciu kliknutím na tlačidlo:
<input type="button" id="btnclose" onclick="doSomething()" /> //btn to close the pop
function doSomenthing() {
alert("Button Clicked");
}