Ich habe eine jQuery-Funktion, die zeigt Leuchtkasten Pop-up:Disable jQuery-Funktion auf einer bestimmten Seite
function flatsomeQuickView(element) {
$(element).click(function(e){
$(this).after('<div class="ux-loading dark"></div>');
var product_id = $(this).attr('data-prod');
var data = { action: 'ux_quickview', product: product_id};
$.post(ajaxURL.ajaxurl, data, function(response) {
$.magnificPopup.open({
removalDelay: 300,
items: {
src: '<div class="product-lightbox">'+response+'</div>',
type: 'inline'
}
});
$('.ux-loading').remove();
$('.product-lightbox .product-gallery-slider').flickity({
cellAlign: "center",
wrapAround: true,
autoPlay: false,
prevNextButtons:true,
percentPosition: true,
imagesLoaded: true,
lazyLoad: 1,
pageDots: false,
rightToLeft: false
});
setTimeout(function() {
// Run Variations Form Scripts
if ($('.product-lightbox form').hasClass('variations_form')) {
$('.product-lightbox form.variations_form').wc_variation_form();
}
$(".product-lightbox form.variations_form").on("show_variation", function (event, variation) {
if(variation.image_src){
$('.product-lightbox .product-gallery-slider .slide.first img').attr('src',variation.image_src);
$('.product-lightbox .product-gallery-slider .slide.first a').attr('href',variation.image_link);
$('.product-lightbox .product-gallery-slider').flickity('select', 0);
}
});
// Create QTY Buttons
$('.product-lightbox').addQty();
}, 600);
});
e.preventDefault();
}); // product lightbox
}
flatsomeQuickView('.quick-view');
, die will ich nicht auf einer Homepage (Wordpress-Website) auszuführen. Dafür habe ich eine WP Aktion in der functions.php
erstellte Dateifunction quick_view_override() {
global $myvar;
if($myvar == 'home') {
echo <<<EOT
<script>
function flatsomeQuickView(element) {
$(element).click(false);
}
</script>
EOT;
}
}
add_action('wp_footer', 'quick_view_override', 100);
aber irgendwie .click()
ist nicht für flatsomeQuickView
Funktion deaktiviert.
Ich habe Code aktualisiert '$ (Element) .off ('Klick');' und mein Aufhebungscode kommt nur unter Originalfunktion, funktioniert aber immer noch nicht (Originalfunktion tritt ein). – JackTheKnife
Sie müssen 'flatsomeQuickView' nicht in Ihrem Override-Code definieren, es ist in diesem Fall sinnlos, weil Sie es bereits definiert und aufgerufen haben. Sie hätten einfach '$ (element) .off ('click');' – RwwL
anrufen können. Eine andere sehr einfache Methode wäre, Ihre 'if $ myvar ==' home''-Logik zu benutzen, um eine benutzerdefinierte Klasse zu erstellen auf dem 'html' oder' body' Element, dann in Ihrem ursprünglichen Code umgeben nur den ursprünglichen Aufruf zu 'flatsomeQuickView' mit' if ($ ('. homepageClass'). Länge) {'...'} ' – RwwL