Reputation: 652
I'm using jQuery Popup Overlay - http://www.jqueryscript.net/demo/Responsive-Accessible-jQuery-Modal-Plugin-Popup-Overlay/
Instead of embedding the popup content in the html , i am wanting to get it from another page on click. I have it working to get the content on click , but the issue i have is that i am using 4 popup tablinks , and if i click one and then another i am getting duplicate results. I tried to use .one click and slice but neither worked.
here is the html and script
<li class="tablink rafters_btn_open"><a>RAFTER POPUP TAB</a></li>
<li class="tablink postseason_btn_open"><a>POSTSEASON POPUP TAB</a></li>
<li class="tablink alpha_btn_open"><a>ALPHA POPUP TAB</a></li>
<li class="tablink hof_btn_open"><a>HOF POPUP TAB</a></li>
$('.tablink').one('click',function(){
$.get('http://mysite.page2.com', function (data) {
$(data).find('#rafters').appendTo('#rafters_btn');
$(data).find('#hof').appendTo('#hof_btn');
$(data).find('#alphacup').appendTo('#alpha_btn');
$(data).find('#postseason').appendTo('#postseason_btn');
});
});
<div id="rafters_btn"></div>
<div id="hof_btn"></div>
<div id="alpha_btn"></div>
<div id="postseason_btn"></div>
If i click on tablink.rafters_btn_open , then click on any of the others , then reclick tablink.rafters_btn_open i begin to get 2,3,4 copies of the content. Any advice ?
Upvotes: 1
Views: 183
Reputation: 2667
It's better to load data just once along with the page:
$(function ()
{
$.get('http://mysite.page2.com', function (data) {
$(data).find('#rafters').appendTo('#rafters_btn');
$(data).find('#hof').appendTo('#hof_btn');
$(data).find('#alphacup').appendTo('#alpha_btn');
$(data).find('#postseason').appendTo('#postseason_btn');
});
});
Upvotes: 0
Reputation: 24001
try to add class to clicked element
$('.tablink').on('click',function(){
var Thisit = $(this);
if(!Thisit.hasClass('clicked')){
$.get('http://mysite.page2.com', function (data) {
$(data).find('#rafters').appendTo('#rafters_btn');
$(data).find('#hof').appendTo('#hof_btn');
$(data).find('#alphacup').appendTo('#alpha_btn');
$(data).find('#postseason').appendTo('#postseason_btn');
$('.tablink').removeClass('clicked');
$(this).addClass('clicked');
});
}
});
Upvotes: 1