2017-02-20 3 views
0

Ich versuche, die Browserfensterbreite onResize() anzuzeigen. Ich habe viele Beiträge darüber gelesen, aber es funktioniert immer noch nicht. Das JavaScript wird nie ausgeführt (die Warnung wird nie angezeigt).onResize() funktioniert nicht in WordPress 4.7.2

Diese Methode der Verwendung von onResize = "dispScreenWidth()" funktioniert problemlos in einer Bootstrap-Site. Ich weiß, dass der Pfad get_template_directory_uri() korrekt ist. Ich habe gerade jQuery Updater installiert, aber das war keine Hilfe.

functions.php 
<?php 
    function flashdatadesign_twentytwelve_credits() { 
     echo 'Website by <a href="http://example.com" title="example">';    
    } 
    add_action('twentytwelve_credits', 'mysite_twentytwelve_credits'); 

    wp_enqueue_script('bcscript', get_template_directory_uri().'/js/bcscript.js', array ('jquery'), NULL, true); 
?> 

header.php 
<body <?php body_class(); ?> onResize="dispScreenWidth()"> 
    <div id="page" class="hfeed site"> 
     <p id="diag"></p> // --- this is just to display window.innerWidth 
     <header id="masthead" class="site-header" role="banner"> 
     <hgroup> 
     ........... 
</body> 

bcscript.js 
jQuery(document).ready(function(){ 
    function dispScreenWidth() { 
     jQuery('#diag').css('display', 'inline'); 
     jQuery('#diag').html(''); 
     jQuery('#diag').append(window.innerWidth + ', '); 

     alert('display'); 
    } 
}); 

Antwort

1

Ihre Funktion ist außerhalb des Geltungsbereichs.

Sie deklarieren die dispScreenWidth() Funktion in einer anderen Funktion, so dass diese Funktion nicht verfügbar ist, wenn Sie sie mit onResize aufrufen.

Versuchen Sie, es aus dem jQuery (Dokument) .ready-Bereich zu entfernen und in den Hauptbereich zu legen.

Etwas wie folgt aus:

jQuery(document).ready(function(){ 
    //do other stuff 
}); 

function dispScreenWidth() { 
    jQuery('#diag').css('display', 'inline'); 
    jQuery('#diag').html(''); 
    jQuery('#diag').append(window.innerWidth + ', '); 

    alert('display'); 
} 

Außerdem können Sie jQuery-Äquivalent anstelle von onResize es in der body Tag setzen.

Like this:

jQuery(document).ready(function(){ 
    //do other stuff 
}); 

jQuery(window).on('resize', function(){ 
    dispScreenWidth(); 
}); 

function dispScreenWidth() { 
    jQuery('#diag').css('display', 'inline'); 
    jQuery('#diag').html(''); 
    jQuery('#diag').append(window.innerWidth + ', '); 

    alert('display'); 
} 
+0

jQuery (Fenster) .auf ('Größe ändern', function() funktionierte prima Dank – fuey