如何在我的 Next.Js 应用程序中正确使用此 jQuery 脚本?
How to properly use this jQuery script in my Next.Js app?
我有这个脚本,我使用的是一个普通的 HTML 网站,并通过 <script>
标签导入它:
(function($) {
var wa_time_out, wa_time_in;
$(document).ready(function() {
$(".wa__btn_popup").on("click", function() {
if ($(".wa__popup_chat_box").hasClass("wa__active")) {
$(".wa__popup_chat_box").removeClass("wa__active");
$(".wa__btn_popup").removeClass("wa__active");
clearTimeout(wa_time_in);
if ($(".wa__popup_chat_box").hasClass("wa__lauch")) {
wa_time_out = setTimeout(function() {
$(".wa__popup_chat_box").removeClass("wa__pending");
$(".wa__popup_chat_box").removeClass("wa__lauch");
}, 400);
}
} else {
$(".wa__popup_chat_box").addClass("wa__pending");
$(".wa__popup_chat_box").addClass("wa__active");
$(".wa__btn_popup").addClass("wa__active");
clearTimeout(wa_time_out);
if (!$(".wa__popup_chat_box").hasClass("wa__lauch")) {
wa_time_in = setTimeout(function() {
$(".wa__popup_chat_box").addClass("wa__lauch");
}, 100);
}
}
});
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(";");
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == " ") {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
$("#nta-wa-gdpr").change(function() {
if (this.checked) {
setCookie("nta-wa-gdpr", "accept", 30);
if (getCookie("nta-wa-gdpr") != "") {
$('.nta-wa-gdpr').hide(500);
$('.wa__popup_content_item').each(function(){
$(this).removeClass('pointer-disable');
$('.wa__popup_content_list').off('click');
})
}
}
});
if (getCookie("nta-wa-gdpr") != "") {
$('.wa__popup_content_list').off('click');
} else{
$('.wa__popup_content_list').click(function(){
$('.nta-wa-gdpr').delay(500).css({"background" : "red", "color" : "#fff"});
});
}
});
})(jQuery);
然后我在cdn上导入了jQuery,放在</head>
之前:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
我需要在我的 NextJS 应用程序中使用它。
我尝试将相同的脚本放在 /public/static/script.js
上的文件中
然后像这样在我的 _app.js
上导入:
<Head>
<script type="text/javascript" src="/static/script.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</Head>
还尝试了我在 Google 和此处看到的其他一些方法,但 none 有效。我怎样才能正确地做到这一点?
您可以按照以下步骤操作
安装jquery
npm install jquery
loader.js
//loader.js
window.$ = window.jQuery = require('jquery')
之后,jquery 也可以正常工作
import '[LoaderPath]/loader.js'
...
const handleForm = () => {
$("#date").val("data");
}
我有这个脚本,我使用的是一个普通的 HTML 网站,并通过 <script>
标签导入它:
(function($) {
var wa_time_out, wa_time_in;
$(document).ready(function() {
$(".wa__btn_popup").on("click", function() {
if ($(".wa__popup_chat_box").hasClass("wa__active")) {
$(".wa__popup_chat_box").removeClass("wa__active");
$(".wa__btn_popup").removeClass("wa__active");
clearTimeout(wa_time_in);
if ($(".wa__popup_chat_box").hasClass("wa__lauch")) {
wa_time_out = setTimeout(function() {
$(".wa__popup_chat_box").removeClass("wa__pending");
$(".wa__popup_chat_box").removeClass("wa__lauch");
}, 400);
}
} else {
$(".wa__popup_chat_box").addClass("wa__pending");
$(".wa__popup_chat_box").addClass("wa__active");
$(".wa__btn_popup").addClass("wa__active");
clearTimeout(wa_time_out);
if (!$(".wa__popup_chat_box").hasClass("wa__lauch")) {
wa_time_in = setTimeout(function() {
$(".wa__popup_chat_box").addClass("wa__lauch");
}, 100);
}
}
});
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(";");
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == " ") {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
$("#nta-wa-gdpr").change(function() {
if (this.checked) {
setCookie("nta-wa-gdpr", "accept", 30);
if (getCookie("nta-wa-gdpr") != "") {
$('.nta-wa-gdpr').hide(500);
$('.wa__popup_content_item').each(function(){
$(this).removeClass('pointer-disable');
$('.wa__popup_content_list').off('click');
})
}
}
});
if (getCookie("nta-wa-gdpr") != "") {
$('.wa__popup_content_list').off('click');
} else{
$('.wa__popup_content_list').click(function(){
$('.nta-wa-gdpr').delay(500).css({"background" : "red", "color" : "#fff"});
});
}
});
})(jQuery);
然后我在cdn上导入了jQuery,放在</head>
之前:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
我需要在我的 NextJS 应用程序中使用它。
我尝试将相同的脚本放在 /public/static/script.js
然后像这样在我的 _app.js
上导入:
<Head>
<script type="text/javascript" src="/static/script.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</Head>
还尝试了我在 Google 和此处看到的其他一些方法,但 none 有效。我怎样才能正确地做到这一点?
您可以按照以下步骤操作
安装jquery
npm install jquery
loader.js
//loader.js
window.$ = window.jQuery = require('jquery')
之后,jquery 也可以正常工作
import '[LoaderPath]/loader.js'
...
const handleForm = () => {
$("#date").val("data");
}