2017-05-02 5 views
0

私のウェブサイトのページにアクセスすると、class = "no-js"と表示されますが、javascriptは必要です。ハードコードされたエンキュー機能を使用する代わりに、Wordpressでプラグイン "Custom javascript"を使用しています。しかし、それが働いているので、私は問題が何であるか理解していません。しかし今日、他のプラグインが表示を停止してこのエラーを表示しました: noscript class = "noscript-message" メッセージ:このコンテンツにはJavaScriptが必要です。 明らかに何かが正しいわけではありません。なぜ誰かが何か考えているのですか?以下の私のjavascriptのコードclass = "no-js"しかしjavascriptが動作していますWordpress

jQuery(document).ready(function() { 
 
     img = new Image(); 
 
\t div = document.getElementById('sidebar'); 
 
\t img.onload = function() { 
 
\t \t div.parentNode.insertBefore(img, div.nextSibling).style.marginTop = "-115px"; 
 
\t }; 
 
\t img.src = '....../.png'; 
 
    x=document.getElementsByClassName("next page-numbers"); 
 
    for(var i = 0; i < x.length; i++){ 
 
    x[i].innerText="Nästa →"; 
 
    } 
 
    y=document.getElementsByClassName("prev page-numbers"); 
 
    for(var i = 0; i < y.length; i++){ 
 
    y[i].innerText="← Tillbaka"; 
 
    } 
 

 
       jQuery("li.current_page_item").each(function(index) { 
 
        jQuery(this).parent('.sub-menu').slideToggle('fast'); 
 
        jQuery(this).parent().parent('.sub-menu').slideToggle('fast'); 
 
\t \t \t \t \t jQuery(this).parent().parent().parent('.sub-menu').slideToggle('fast'); 
 
       }); 
 

 
       jQuery("li.current-menu-parent").each(function(index) { 
 
        jQuery(this).parent('.sub-menu').slideToggle('fast'); 
 
        jQuery(this).parent().parent('.sub-menu').slideToggle('fast'); 
 
        jQuery(this).parent().parent().parent('.sub-menu').slideToggle('fast'); 
 
       }); 
 
});
あなたの体に no-jsクラスを追加してどのような

答えて

1

で、明確になって、それはあなたがに見て必要なものですされていません。

プラグインの動作が停止している可能性があります。そのクラスが存在するかどうかを確認しているので、それが見つかるので、ちょうど行く:申し訳ありませんが、私はJavaScriptを正常に機能させるために必要です

あなたの体にno-jsクラスを追加する理由とその理由を突き止める必要があります。それが正しい行動です。しかし、それは困難で時間がかかることが判明するかもしれません。あなたが迅速かつ汚いソリューション後にしている場合は

、これを使用する:

(function($){ 
    $(document).on('ready', function(){ 
    $('body').removeClass('no-js'); 
    }) 
})(jQuery) 

それはjQueryを使用して、できるだけ早くDOMが構築されているとして、あなたの<body>要素からno-jsクラスを削除します(WordPressの中に既に存在しています)、 JavaScriptです。スクリプトが実行されている場合、jsは機能するので、クラスは<body>に存在してはいけません。私はdocument.readyでスクリプトを実行しています。ワードプレスのほとんどのスクリプトはの後に実行されるwindow.loadにバインドされているため、このスクリプトはプラグインの前に実行される可能性があります。


は、あなたのプラグインは、ページが実際に構築され、その上にjavascript実行される前に、php<body>上に存在するno-jsかどうかをチェックしている可能性があります。あなたがそのレベルでクラスを削除したい場合は、あなたのテーマのfunctions.phpにこれを追加する必要があります

add_filter('body_class', 'remove_nojs_from_body', 10, 1); 
function remove_nojs_from_body($classes) { 
    if (in_array('no-js', $classes)) { 
     unset($classes[array_search('no-js', $classes)]); 
    } 
    return $classes; 
} 
+0

をあなたの答えをありがとう、と私はそれに行き、チェックインしました。誰も素早い修正が好きではないので、正しく機能するだけです。だから私はチェックした: <?php if(!is_admin())add_action( 'wp_print_scripts'、 'woothemes_add_javascript');もし (!function_exists( 'woothemes_add_javascript')){ \t関数woothemes_add_javascript(){ \t \t \t \t wp_enqueue_script( 'jQueryの')。 \t \t wp_enqueue_script( 'thickbox'); \t \t wp_enqueue_script( 'superfish'、 私の "sidebar-init.php" iveが干渉して何かを壊していることが判明しましたので、いくつかのコードを再設計しました。 – MuppetShovel

関連する問題