Custom javascript not workingModule JS - Mismatched anonymous define moduleMagento 2 : Use of shims in requirejs-config.js fileLazy load Js not working in Magento2.3.1 VersionTypeError: require is not a functionMagento 2.3.0 add custom JS in theme, using require jsnot working frontend javascript filerequired error in magento2?Require Js Error: Mismatched anonymous define() module: function Magento 2Javascript translation not workingMagento 2 : Javascript in phtml file not loadedAdding jQuery plugin to Magento 2 does not workCustom javascript not working/loading correctlyMagento2: Custom Javascript Library not working for sliderMagento 2 checkout page keeps on loading.In console,$.event.props is undefined in jquery.mobile.custom.js:44:2.How to clear that?Uncaught Error: Mismatched anonymous define() magento 2.2.4

How can the DM most effectively choose 1 out of an odd number of players to be targeted by an attack or effect?

A Journey Through Space and Time

Accidentally leaked the solution to an assignment, what to do now? (I'm the prof)

What is the offset in a seaplane's hull?

Shell script can be run only with sh command

What does "enim et" mean?

The use of multiple foreign keys on same column in SQL Server

Can town administrative "code" overule state laws like those forbidding trespassing?

least quadratic residue under GRH: an EXPLICIT bound

Should I join an office cleaning event for free?

Can an x86 CPU running in real mode be considered to be basically an 8086 CPU?

When blogging recipes, how can I support both readers who want the narrative/journey and ones who want the printer-friendly recipe?

I see my dog run

How do I create uniquely male characters?

Why Is Death Allowed In the Matrix?

Can I interfere when another PC is about to be attacked?

Closed subgroups of abelian groups

Can you lasso down a wizard who is using the Levitate spell?

Draw simple lines in Inkscape

Prevent a directory in /tmp from being deleted

Are white and non-white police officers equally likely to kill black suspects?

Copenhagen passport control - US citizen

Divisibility of sum of multinomials

Why has Russell's definition of numbers using equivalence classes been finally abandoned? ( If it has actually been abandoned).



Custom javascript not working


Module JS - Mismatched anonymous define moduleMagento 2 : Use of shims in requirejs-config.js fileLazy load Js not working in Magento2.3.1 VersionTypeError: require is not a functionMagento 2.3.0 add custom JS in theme, using require jsnot working frontend javascript filerequired error in magento2?Require Js Error: Mismatched anonymous define() module: function Magento 2Javascript translation not workingMagento 2 : Javascript in phtml file not loadedAdding jQuery plugin to Magento 2 does not workCustom javascript not working/loading correctlyMagento2: Custom Javascript Library not working for sliderMagento 2 checkout page keeps on loading.In console,$.event.props is undefined in jquery.mobile.custom.js:44:2.How to clear that?Uncaught Error: Mismatched anonymous define() magento 2.2.4






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








5















I'm trying to inject a scroll to anchor javascript globally in Magento 2.



More specifically this script:



$('a[href^="#"]').on('click', function(event) 
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);


I have taken the reference from this blog post.



I converted it to include defines and stuff:



define([
"jquery",
"jquery/ui"
], function ($)
'use strict';

$('a[href^="#"]').on('click', function(event)
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);

);


And injecting it in to my themes default_head_blocks.xml with <link src="js/custom.js" />



The injection works but I am getting the following error in Chrome console:



Uncaught Error: Mismatched anonymous define() module: function ($) {
'use strict';

require.js:166









share|improve this question
























  • Check this answer, it might match your situation magento.stackexchange.com/a/255077/76597

    – HelgeB
    Mar 8 at 4:34

















5















I'm trying to inject a scroll to anchor javascript globally in Magento 2.



More specifically this script:



$('a[href^="#"]').on('click', function(event) 
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);


I have taken the reference from this blog post.



I converted it to include defines and stuff:



define([
"jquery",
"jquery/ui"
], function ($)
'use strict';

$('a[href^="#"]').on('click', function(event)
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);

);


And injecting it in to my themes default_head_blocks.xml with <link src="js/custom.js" />



The injection works but I am getting the following error in Chrome console:



Uncaught Error: Mismatched anonymous define() module: function ($) {
'use strict';

require.js:166









share|improve this question
























  • Check this answer, it might match your situation magento.stackexchange.com/a/255077/76597

    – HelgeB
    Mar 8 at 4:34













5












5








5








I'm trying to inject a scroll to anchor javascript globally in Magento 2.



More specifically this script:



$('a[href^="#"]').on('click', function(event) 
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);


I have taken the reference from this blog post.



I converted it to include defines and stuff:



define([
"jquery",
"jquery/ui"
], function ($)
'use strict';

$('a[href^="#"]').on('click', function(event)
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);

);


And injecting it in to my themes default_head_blocks.xml with <link src="js/custom.js" />



The injection works but I am getting the following error in Chrome console:



Uncaught Error: Mismatched anonymous define() module: function ($) {
'use strict';

require.js:166









share|improve this question
















I'm trying to inject a scroll to anchor javascript globally in Magento 2.



More specifically this script:



$('a[href^="#"]').on('click', function(event) 
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);


I have taken the reference from this blog post.



I converted it to include defines and stuff:



define([
"jquery",
"jquery/ui"
], function ($)
'use strict';

$('a[href^="#"]').on('click', function(event)
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);

);


And injecting it in to my themes default_head_blocks.xml with <link src="js/custom.js" />



The injection works but I am getting the following error in Chrome console:



Uncaught Error: Mismatched anonymous define() module: function ($) {
'use strict';

require.js:166






magento2 javascript requirejs






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 8 at 5:40









ABHISHEK TRIPATHI

2,1421828




2,1421828










asked Mar 8 at 4:21









JohnJohn

1497




1497












  • Check this answer, it might match your situation magento.stackexchange.com/a/255077/76597

    – HelgeB
    Mar 8 at 4:34

















  • Check this answer, it might match your situation magento.stackexchange.com/a/255077/76597

    – HelgeB
    Mar 8 at 4:34
















Check this answer, it might match your situation magento.stackexchange.com/a/255077/76597

– HelgeB
Mar 8 at 4:34





Check this answer, it might match your situation magento.stackexchange.com/a/255077/76597

– HelgeB
Mar 8 at 4:34










3 Answers
3






active

oldest

votes


















4














Instead of defined use require Like this:



require([
'jquery',
"jquery/ui"
], function($)
'use strict';

$('a[href^="#"]').on('click', function(event)
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);
);





share|improve this answer


















  • 2





    Don't know if it's the best way, but it worked and I didn't have to touch the header file.

    – John
    Mar 8 at 5:08











  • Yes, it is the way of Magento to write js anywhere in your code. using define includes the files that you add in it

    – Shoaib Munir
    Mar 8 at 5:10


















3














Add an external JS in the following way :



Try this,



Add your custom js in the following path.




app/design/frontend/Vendor/theme-name/web/js/nameofjs.js




then you need to add requirejs-config.js to the following path.




app/design/frontend/Vendor/theme-name/requirejs-config.js




then add the following code in it



 var config = 
paths:
'your_js_name' : 'js/nameofjs',
,
shim:
'your_js_name':
deps: ['jquery']
,

;


and add the below code to load custom js, In your case it would be header.phtml in Magento_Theme folder in your theme




app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml




<script>
require(['jquery','your_js_name'],function($)
$(window).load(function ()
/*alert('load from external jquery');*/
););
</script>


Hope this helps and this is correct way to load any custom js in M2 as far as I know.



Peace :)






share|improve this answer

























  • Nice one Prathap, you elaborate well, how to add js. +1

    – Shoaib Munir
    Mar 8 at 4:36












  • Do the above things and it will add js when the script loaded

    – Prathap Gunasekaran
    Mar 8 at 4:39











  • See this get more about how js is loading in magento 2 magento.stackexchange.com/questions/264679/…

    – Prathap Gunasekaran
    Mar 8 at 4:40











  • I have to override the header.phtml template? Where in that file does the code go?

    – John
    Mar 8 at 4:45











  • Your header.phtml must be in this path app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml

    – Prathap Gunasekaran
    Mar 8 at 4:47


















1














In Maggento 2 the concept of requirejs is restricting you to add the an external js which is not bound into any module. So what you can do is simply create a custom module follow this & define your js there into that module at below location




Magento_root/app/code/Vendor/Module/view/frontend/web/js/file.js




It should contains the code as follows



require([
'jquery',
"jquery/ui"
], function($)
'use strict';

$('a[href^="#"]').on('click', function(event)
var target = $(this.getAttribute('href'));
if( target.length )
event.preventDefault();
$('html, body').stop().animate(
scrollTop: target.offset().top
, 1000);

);
);


Define it into your requirejs-config.js located at below location




Magento_root/app/code/Vendor/Module/view/frontend/requirejs-config.js




It should Contains the code as follows:



var config = 
map:
'*':
module_js_denotation_name: 'Vendor_module/js/file',


;


Now you can call it into any phtml file you want to load it as follows



<script type="text/javascript">
require(['jquery', 'module_js_denotation_name'], function($, myscript)
myscript();
);
</script>


For your requirement you need to call it into the header.phtml or the footer.phtml file.



You can also create your own phtml file at Vendor/Module/view/frontend/template/template.phtml & call it there & with the help of layout Vendor/Module/view/frontend/layout/default.xaml file you can inject your template file to the theme (I am supposing that you no how to inject your phtml to your theme through the layout files).




Note: Make sure after doing this you are running the below commands o
register your module & deploy the contents & make sure you are not making any changes to the default magento file always make the changes to your custome code that is inside the Magento_root/app directory



php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush






share|improve this answer

























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "479"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f264940%2fcustom-javascript-not-working%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    4














    Instead of defined use require Like this:



    require([
    'jquery',
    "jquery/ui"
    ], function($)
    'use strict';

    $('a[href^="#"]').on('click', function(event)
    var target = $(this.getAttribute('href'));
    if( target.length )
    event.preventDefault();
    $('html, body').stop().animate(
    scrollTop: target.offset().top
    , 1000);

    );
    );





    share|improve this answer


















    • 2





      Don't know if it's the best way, but it worked and I didn't have to touch the header file.

      – John
      Mar 8 at 5:08











    • Yes, it is the way of Magento to write js anywhere in your code. using define includes the files that you add in it

      – Shoaib Munir
      Mar 8 at 5:10















    4














    Instead of defined use require Like this:



    require([
    'jquery',
    "jquery/ui"
    ], function($)
    'use strict';

    $('a[href^="#"]').on('click', function(event)
    var target = $(this.getAttribute('href'));
    if( target.length )
    event.preventDefault();
    $('html, body').stop().animate(
    scrollTop: target.offset().top
    , 1000);

    );
    );





    share|improve this answer


















    • 2





      Don't know if it's the best way, but it worked and I didn't have to touch the header file.

      – John
      Mar 8 at 5:08











    • Yes, it is the way of Magento to write js anywhere in your code. using define includes the files that you add in it

      – Shoaib Munir
      Mar 8 at 5:10













    4












    4








    4







    Instead of defined use require Like this:



    require([
    'jquery',
    "jquery/ui"
    ], function($)
    'use strict';

    $('a[href^="#"]').on('click', function(event)
    var target = $(this.getAttribute('href'));
    if( target.length )
    event.preventDefault();
    $('html, body').stop().animate(
    scrollTop: target.offset().top
    , 1000);

    );
    );





    share|improve this answer













    Instead of defined use require Like this:



    require([
    'jquery',
    "jquery/ui"
    ], function($)
    'use strict';

    $('a[href^="#"]').on('click', function(event)
    var target = $(this.getAttribute('href'));
    if( target.length )
    event.preventDefault();
    $('html, body').stop().animate(
    scrollTop: target.offset().top
    , 1000);

    );
    );






    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Mar 8 at 4:35









    Shoaib MunirShoaib Munir

    2,3672829




    2,3672829







    • 2





      Don't know if it's the best way, but it worked and I didn't have to touch the header file.

      – John
      Mar 8 at 5:08











    • Yes, it is the way of Magento to write js anywhere in your code. using define includes the files that you add in it

      – Shoaib Munir
      Mar 8 at 5:10












    • 2





      Don't know if it's the best way, but it worked and I didn't have to touch the header file.

      – John
      Mar 8 at 5:08











    • Yes, it is the way of Magento to write js anywhere in your code. using define includes the files that you add in it

      – Shoaib Munir
      Mar 8 at 5:10







    2




    2





    Don't know if it's the best way, but it worked and I didn't have to touch the header file.

    – John
    Mar 8 at 5:08





    Don't know if it's the best way, but it worked and I didn't have to touch the header file.

    – John
    Mar 8 at 5:08













    Yes, it is the way of Magento to write js anywhere in your code. using define includes the files that you add in it

    – Shoaib Munir
    Mar 8 at 5:10





    Yes, it is the way of Magento to write js anywhere in your code. using define includes the files that you add in it

    – Shoaib Munir
    Mar 8 at 5:10













    3














    Add an external JS in the following way :



    Try this,



    Add your custom js in the following path.




    app/design/frontend/Vendor/theme-name/web/js/nameofjs.js




    then you need to add requirejs-config.js to the following path.




    app/design/frontend/Vendor/theme-name/requirejs-config.js




    then add the following code in it



     var config = 
    paths:
    'your_js_name' : 'js/nameofjs',
    ,
    shim:
    'your_js_name':
    deps: ['jquery']
    ,

    ;


    and add the below code to load custom js, In your case it would be header.phtml in Magento_Theme folder in your theme




    app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml




    <script>
    require(['jquery','your_js_name'],function($)
    $(window).load(function ()
    /*alert('load from external jquery');*/
    ););
    </script>


    Hope this helps and this is correct way to load any custom js in M2 as far as I know.



    Peace :)






    share|improve this answer

























    • Nice one Prathap, you elaborate well, how to add js. +1

      – Shoaib Munir
      Mar 8 at 4:36












    • Do the above things and it will add js when the script loaded

      – Prathap Gunasekaran
      Mar 8 at 4:39











    • See this get more about how js is loading in magento 2 magento.stackexchange.com/questions/264679/…

      – Prathap Gunasekaran
      Mar 8 at 4:40











    • I have to override the header.phtml template? Where in that file does the code go?

      – John
      Mar 8 at 4:45











    • Your header.phtml must be in this path app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml

      – Prathap Gunasekaran
      Mar 8 at 4:47















    3














    Add an external JS in the following way :



    Try this,



    Add your custom js in the following path.




    app/design/frontend/Vendor/theme-name/web/js/nameofjs.js




    then you need to add requirejs-config.js to the following path.




    app/design/frontend/Vendor/theme-name/requirejs-config.js




    then add the following code in it



     var config = 
    paths:
    'your_js_name' : 'js/nameofjs',
    ,
    shim:
    'your_js_name':
    deps: ['jquery']
    ,

    ;


    and add the below code to load custom js, In your case it would be header.phtml in Magento_Theme folder in your theme




    app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml




    <script>
    require(['jquery','your_js_name'],function($)
    $(window).load(function ()
    /*alert('load from external jquery');*/
    ););
    </script>


    Hope this helps and this is correct way to load any custom js in M2 as far as I know.



    Peace :)






    share|improve this answer

























    • Nice one Prathap, you elaborate well, how to add js. +1

      – Shoaib Munir
      Mar 8 at 4:36












    • Do the above things and it will add js when the script loaded

      – Prathap Gunasekaran
      Mar 8 at 4:39











    • See this get more about how js is loading in magento 2 magento.stackexchange.com/questions/264679/…

      – Prathap Gunasekaran
      Mar 8 at 4:40











    • I have to override the header.phtml template? Where in that file does the code go?

      – John
      Mar 8 at 4:45











    • Your header.phtml must be in this path app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml

      – Prathap Gunasekaran
      Mar 8 at 4:47













    3












    3








    3







    Add an external JS in the following way :



    Try this,



    Add your custom js in the following path.




    app/design/frontend/Vendor/theme-name/web/js/nameofjs.js




    then you need to add requirejs-config.js to the following path.




    app/design/frontend/Vendor/theme-name/requirejs-config.js




    then add the following code in it



     var config = 
    paths:
    'your_js_name' : 'js/nameofjs',
    ,
    shim:
    'your_js_name':
    deps: ['jquery']
    ,

    ;


    and add the below code to load custom js, In your case it would be header.phtml in Magento_Theme folder in your theme




    app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml




    <script>
    require(['jquery','your_js_name'],function($)
    $(window).load(function ()
    /*alert('load from external jquery');*/
    ););
    </script>


    Hope this helps and this is correct way to load any custom js in M2 as far as I know.



    Peace :)






    share|improve this answer















    Add an external JS in the following way :



    Try this,



    Add your custom js in the following path.




    app/design/frontend/Vendor/theme-name/web/js/nameofjs.js




    then you need to add requirejs-config.js to the following path.




    app/design/frontend/Vendor/theme-name/requirejs-config.js




    then add the following code in it



     var config = 
    paths:
    'your_js_name' : 'js/nameofjs',
    ,
    shim:
    'your_js_name':
    deps: ['jquery']
    ,

    ;


    and add the below code to load custom js, In your case it would be header.phtml in Magento_Theme folder in your theme




    app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml




    <script>
    require(['jquery','your_js_name'],function($)
    $(window).load(function ()
    /*alert('load from external jquery');*/
    ););
    </script>


    Hope this helps and this is correct way to load any custom js in M2 as far as I know.



    Peace :)







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Mar 8 at 4:46

























    answered Mar 8 at 4:25









    Prathap GunasekaranPrathap Gunasekaran

    1,7261618




    1,7261618












    • Nice one Prathap, you elaborate well, how to add js. +1

      – Shoaib Munir
      Mar 8 at 4:36












    • Do the above things and it will add js when the script loaded

      – Prathap Gunasekaran
      Mar 8 at 4:39











    • See this get more about how js is loading in magento 2 magento.stackexchange.com/questions/264679/…

      – Prathap Gunasekaran
      Mar 8 at 4:40











    • I have to override the header.phtml template? Where in that file does the code go?

      – John
      Mar 8 at 4:45











    • Your header.phtml must be in this path app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml

      – Prathap Gunasekaran
      Mar 8 at 4:47

















    • Nice one Prathap, you elaborate well, how to add js. +1

      – Shoaib Munir
      Mar 8 at 4:36












    • Do the above things and it will add js when the script loaded

      – Prathap Gunasekaran
      Mar 8 at 4:39











    • See this get more about how js is loading in magento 2 magento.stackexchange.com/questions/264679/…

      – Prathap Gunasekaran
      Mar 8 at 4:40











    • I have to override the header.phtml template? Where in that file does the code go?

      – John
      Mar 8 at 4:45











    • Your header.phtml must be in this path app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml

      – Prathap Gunasekaran
      Mar 8 at 4:47
















    Nice one Prathap, you elaborate well, how to add js. +1

    – Shoaib Munir
    Mar 8 at 4:36






    Nice one Prathap, you elaborate well, how to add js. +1

    – Shoaib Munir
    Mar 8 at 4:36














    Do the above things and it will add js when the script loaded

    – Prathap Gunasekaran
    Mar 8 at 4:39





    Do the above things and it will add js when the script loaded

    – Prathap Gunasekaran
    Mar 8 at 4:39













    See this get more about how js is loading in magento 2 magento.stackexchange.com/questions/264679/…

    – Prathap Gunasekaran
    Mar 8 at 4:40





    See this get more about how js is loading in magento 2 magento.stackexchange.com/questions/264679/…

    – Prathap Gunasekaran
    Mar 8 at 4:40













    I have to override the header.phtml template? Where in that file does the code go?

    – John
    Mar 8 at 4:45





    I have to override the header.phtml template? Where in that file does the code go?

    – John
    Mar 8 at 4:45













    Your header.phtml must be in this path app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml

    – Prathap Gunasekaran
    Mar 8 at 4:47





    Your header.phtml must be in this path app/design/frontend/Vendor/theme-name/Magento_Theme/templates/html/header.phtml

    – Prathap Gunasekaran
    Mar 8 at 4:47











    1














    In Maggento 2 the concept of requirejs is restricting you to add the an external js which is not bound into any module. So what you can do is simply create a custom module follow this & define your js there into that module at below location




    Magento_root/app/code/Vendor/Module/view/frontend/web/js/file.js




    It should contains the code as follows



    require([
    'jquery',
    "jquery/ui"
    ], function($)
    'use strict';

    $('a[href^="#"]').on('click', function(event)
    var target = $(this.getAttribute('href'));
    if( target.length )
    event.preventDefault();
    $('html, body').stop().animate(
    scrollTop: target.offset().top
    , 1000);

    );
    );


    Define it into your requirejs-config.js located at below location




    Magento_root/app/code/Vendor/Module/view/frontend/requirejs-config.js




    It should Contains the code as follows:



    var config = 
    map:
    '*':
    module_js_denotation_name: 'Vendor_module/js/file',


    ;


    Now you can call it into any phtml file you want to load it as follows



    <script type="text/javascript">
    require(['jquery', 'module_js_denotation_name'], function($, myscript)
    myscript();
    );
    </script>


    For your requirement you need to call it into the header.phtml or the footer.phtml file.



    You can also create your own phtml file at Vendor/Module/view/frontend/template/template.phtml & call it there & with the help of layout Vendor/Module/view/frontend/layout/default.xaml file you can inject your template file to the theme (I am supposing that you no how to inject your phtml to your theme through the layout files).




    Note: Make sure after doing this you are running the below commands o
    register your module & deploy the contents & make sure you are not making any changes to the default magento file always make the changes to your custome code that is inside the Magento_root/app directory



    php bin/magento setup:upgrade
    php bin/magento setup:di:compile
    php bin/magento setup:static-content:deploy -f
    php bin/magento cache:flush






    share|improve this answer





























      1














      In Maggento 2 the concept of requirejs is restricting you to add the an external js which is not bound into any module. So what you can do is simply create a custom module follow this & define your js there into that module at below location




      Magento_root/app/code/Vendor/Module/view/frontend/web/js/file.js




      It should contains the code as follows



      require([
      'jquery',
      "jquery/ui"
      ], function($)
      'use strict';

      $('a[href^="#"]').on('click', function(event)
      var target = $(this.getAttribute('href'));
      if( target.length )
      event.preventDefault();
      $('html, body').stop().animate(
      scrollTop: target.offset().top
      , 1000);

      );
      );


      Define it into your requirejs-config.js located at below location




      Magento_root/app/code/Vendor/Module/view/frontend/requirejs-config.js




      It should Contains the code as follows:



      var config = 
      map:
      '*':
      module_js_denotation_name: 'Vendor_module/js/file',


      ;


      Now you can call it into any phtml file you want to load it as follows



      <script type="text/javascript">
      require(['jquery', 'module_js_denotation_name'], function($, myscript)
      myscript();
      );
      </script>


      For your requirement you need to call it into the header.phtml or the footer.phtml file.



      You can also create your own phtml file at Vendor/Module/view/frontend/template/template.phtml & call it there & with the help of layout Vendor/Module/view/frontend/layout/default.xaml file you can inject your template file to the theme (I am supposing that you no how to inject your phtml to your theme through the layout files).




      Note: Make sure after doing this you are running the below commands o
      register your module & deploy the contents & make sure you are not making any changes to the default magento file always make the changes to your custome code that is inside the Magento_root/app directory



      php bin/magento setup:upgrade
      php bin/magento setup:di:compile
      php bin/magento setup:static-content:deploy -f
      php bin/magento cache:flush






      share|improve this answer



























        1












        1








        1







        In Maggento 2 the concept of requirejs is restricting you to add the an external js which is not bound into any module. So what you can do is simply create a custom module follow this & define your js there into that module at below location




        Magento_root/app/code/Vendor/Module/view/frontend/web/js/file.js




        It should contains the code as follows



        require([
        'jquery',
        "jquery/ui"
        ], function($)
        'use strict';

        $('a[href^="#"]').on('click', function(event)
        var target = $(this.getAttribute('href'));
        if( target.length )
        event.preventDefault();
        $('html, body').stop().animate(
        scrollTop: target.offset().top
        , 1000);

        );
        );


        Define it into your requirejs-config.js located at below location




        Magento_root/app/code/Vendor/Module/view/frontend/requirejs-config.js




        It should Contains the code as follows:



        var config = 
        map:
        '*':
        module_js_denotation_name: 'Vendor_module/js/file',


        ;


        Now you can call it into any phtml file you want to load it as follows



        <script type="text/javascript">
        require(['jquery', 'module_js_denotation_name'], function($, myscript)
        myscript();
        );
        </script>


        For your requirement you need to call it into the header.phtml or the footer.phtml file.



        You can also create your own phtml file at Vendor/Module/view/frontend/template/template.phtml & call it there & with the help of layout Vendor/Module/view/frontend/layout/default.xaml file you can inject your template file to the theme (I am supposing that you no how to inject your phtml to your theme through the layout files).




        Note: Make sure after doing this you are running the below commands o
        register your module & deploy the contents & make sure you are not making any changes to the default magento file always make the changes to your custome code that is inside the Magento_root/app directory



        php bin/magento setup:upgrade
        php bin/magento setup:di:compile
        php bin/magento setup:static-content:deploy -f
        php bin/magento cache:flush






        share|improve this answer















        In Maggento 2 the concept of requirejs is restricting you to add the an external js which is not bound into any module. So what you can do is simply create a custom module follow this & define your js there into that module at below location




        Magento_root/app/code/Vendor/Module/view/frontend/web/js/file.js




        It should contains the code as follows



        require([
        'jquery',
        "jquery/ui"
        ], function($)
        'use strict';

        $('a[href^="#"]').on('click', function(event)
        var target = $(this.getAttribute('href'));
        if( target.length )
        event.preventDefault();
        $('html, body').stop().animate(
        scrollTop: target.offset().top
        , 1000);

        );
        );


        Define it into your requirejs-config.js located at below location




        Magento_root/app/code/Vendor/Module/view/frontend/requirejs-config.js




        It should Contains the code as follows:



        var config = 
        map:
        '*':
        module_js_denotation_name: 'Vendor_module/js/file',


        ;


        Now you can call it into any phtml file you want to load it as follows



        <script type="text/javascript">
        require(['jquery', 'module_js_denotation_name'], function($, myscript)
        myscript();
        );
        </script>


        For your requirement you need to call it into the header.phtml or the footer.phtml file.



        You can also create your own phtml file at Vendor/Module/view/frontend/template/template.phtml & call it there & with the help of layout Vendor/Module/view/frontend/layout/default.xaml file you can inject your template file to the theme (I am supposing that you no how to inject your phtml to your theme through the layout files).




        Note: Make sure after doing this you are running the below commands o
        register your module & deploy the contents & make sure you are not making any changes to the default magento file always make the changes to your custome code that is inside the Magento_root/app directory



        php bin/magento setup:upgrade
        php bin/magento setup:di:compile
        php bin/magento setup:static-content:deploy -f
        php bin/magento cache:flush







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 8 at 5:35

























        answered Mar 8 at 4:56









        ABHISHEK TRIPATHIABHISHEK TRIPATHI

        2,1421828




        2,1421828



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Magento Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f264940%2fcustom-javascript-not-working%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            1928 у кіно

            Захаров Федір Захарович

            Ель Греко