我有一个脚本,我只想在有人particular page
时加载我加载了像 Functions.php :
这样的脚本function my_assets() {
wp_enqueue_script( 'footerlinks', get_stylesheet_directory_uri() . '/js/footerlinks.js', array( 'jquery' ), '1.0', true );
wp_enqueue_script( 'gallery', get_stylesheet_directory_uri() . '/js/gallery.js', array( 'jquery' ), '1.0', true );
wp_enqueue_script( 'about', get_stylesheet_directory_uri() . '/js/about.js', array( 'jquery' ), '1.0', true );
wp_enqueue_script( 'legal', get_stylesheet_directory_uri() . '/js/legal.js', array( 'jquery' ), '1.0', true );
if ( !is_page( 490 ) ) {
wp_dequeue_script('about');
}
if ( !is_page( 29804 ) ) {
wp_dequeue_script('legal');
}
if ( !is_page( 24574 ) ) {
wp_dequeue_script('gallery');
}
}
add_action( 'wp_enqueue_scripts', 'my_assets' );
此代码有效,但我也在缩小和连接脚本。当我执行此部分时,脚本不会起作用,但它仍然在页面中加载而没有任何错误。
这是脚本 legal.js :
<!-- Script for making legal blurbs clickable to display one at a time -->
jQuery(document).ready(function(){
jQuery(".legaltab").hide();
console.log("legal script running");
var tprivacy = document.createAttribute("target");
var ttc = document.createAttribute("target");
var tdisclaimer = document.createAttribute("target");
var bprivacy = document.getElementById("bprivacy");
tprivacy.value = "sprivacy";
bprivacy.setAttributeNode(tprivacy);
var btc = document.getElementById("btc");
ttc.value = "stc";
btc.setAttributeNode(ttc);
var bdisclaimer = document.getElementById("bdisclaimer");
tdisclaimer.value = "sdisclaimer";
bdisclaimer.setAttributeNode(tdisclaimer);
jQuery(".legalblurb").click(function(){
console.log("inside link button function");
jQuery(".legaltab").hide();
jQuery("#"+ jQuery(this).attr("target") ).show();
});
});
我装错了吗?其他一些问题讨论了gulp或grunt,但我不确定它们是否是同一个东西。
答案 0 :(得分:1)
您的JS中有错误。例如,在legal.js
中你有:
<!-- Script for making legal blurbs clickable to display one at a time -->
在Javascript中添加评论的正确方法是
// Script for making legal blurbs clickable to display one at a time
或
/* Script for making legal blurbs clickable to display one at a time */
我看了一下你在网站上编译过的JS,看到了JS中另一个糟糕的评论:
<!--Script for footer links that take you everywhere else-->
我建议您使用JavaScript strict mode
并使用JSHint测试您的代码。这将大大减少缩小错误。
legal.js
的已清理版本将是:
/*globals jQuery*/
/* Script for making legal blurbs clickable to display one at a time */
jQuery(document).ready(function($){
'use strict';
$(".legaltab").hide();
console.log("legal script running");
var tprivacy = document.createAttribute("target");
var ttc = document.createAttribute("target");
var tdisclaimer = document.createAttribute("target");
var bprivacy = document.getElementById("bprivacy");
tprivacy.value = "sprivacy";
bprivacy.setAttributeNode(tprivacy);
var btc = document.getElementById("btc");
ttc.value = "stc";
btc.setAttributeNode(ttc);
var bdisclaimer = document.getElementById("bdisclaimer");
tdisclaimer.value = "sdisclaimer";
bdisclaimer.setAttributeNode(tdisclaimer);
$(".legalblurb").click(function(){
console.log("inside link button function");
$(".legaltab").hide();
$("#"+ $(this).attr("target") ).show();
});
});
答案 1 :(得分:0)
对你来说这很奇怪,你为什么不这样做:
wp_register_script( 'gallery', get_stylesheet_directory_uri() . '/js/gallery.js', array( 'jquery' ), '1.0', true );
if ( is_page( 24574 ) ) {
wp_enqueue_script('gallery');
}
minify工具基于wp_enqueue_script函数
工作答案 2 :(得分:0)
首先检查您是否使用任何缓存插件。如果您使用任何类似的插件,请禁用它。清除浏览器缓存。之后,让你的代码像这样
wp_register_script( 'gallery', get_stylesheet_directory_uri() . '/js/gallery.js', array( 'jquery' ), '1.0', true );
if ( is_page( 'gallery' ) ) {
wp_enqueue_script('gallery');
}
它应该适合你。