admin管理员组

文章数量:1026989

I have looked at a lot of examples on SO but can't seems to see what the issue is with my code:

I have urls that have hash tags / jump to id values appended to them. I want to check if the url has a hash tag and use that value as a click event like i would do on the page when clicking a button.

example url:

jquery code:

jQuery(document).ready(function() { 
    if ( window.location.hash ) {

        function showVideo() {
            alert('in the function');
        }

        jQuery(window.location.hash).click(showVideo);

}
});

current click event triggers function

showVideo();

I have looked at a lot of examples on SO but can't seems to see what the issue is with my code:

I have urls that have hash tags / jump to id values appended to them. I want to check if the url has a hash tag and use that value as a click event like i would do on the page when clicking a button.

example url: http://domain./#help-video-modal-tags

jquery code:

jQuery(document).ready(function() { 
    if ( window.location.hash ) {

        function showVideo() {
            alert('in the function');
        }

        jQuery(window.location.hash).click(showVideo);

}
});

current click event triggers function

showVideo();
Share Improve this question asked Apr 22, 2014 at 13:12 esternleesternle 331 silver badge9 bronze badges 3
  • What do you mean by current click event triggers function? – Satpal Commented Apr 22, 2014 at 13:17
  • Do you actually want to TRIGGER a click or do you just want to add a click event listener? Your code does the latter. So if you click on the element with the same id as the hash, it should work. – devnull69 Commented Apr 22, 2014 at 13:18
  • the page has a click event that is also on a <a> link that will run the showVideo() function. I basically want to run that same action of clicking the <a> link but when the page loads by checking the hash value in the url. – esternle Commented Apr 22, 2014 at 13:19
Add a ment  | 

2 Answers 2

Reset to default 3

Use this

jQuery(document).ready(function() { 
    if ( window.location.hash ) {

        function showVideo(hash) {
            alert('in the function, hash -> ' + hash);
        }

        jQuery(document).click(showVideo(window.location.hash));

    }
});

If I remember correctly to trigger an event of certain element is:

$('elem').trigger('click');

So in this case:

$(document).ready(function() { 
    if ( window.location.hash ) {   
        $(window.location.hash).trigger('click');//and trigger the event when needed
   }
});

function showVideo() {
  alert('do something when click is trigger');
}

$('elem').click(showVideo); //assign the event function normally

I have looked at a lot of examples on SO but can't seems to see what the issue is with my code:

I have urls that have hash tags / jump to id values appended to them. I want to check if the url has a hash tag and use that value as a click event like i would do on the page when clicking a button.

example url:

jquery code:

jQuery(document).ready(function() { 
    if ( window.location.hash ) {

        function showVideo() {
            alert('in the function');
        }

        jQuery(window.location.hash).click(showVideo);

}
});

current click event triggers function

showVideo();

I have looked at a lot of examples on SO but can't seems to see what the issue is with my code:

I have urls that have hash tags / jump to id values appended to them. I want to check if the url has a hash tag and use that value as a click event like i would do on the page when clicking a button.

example url: http://domain./#help-video-modal-tags

jquery code:

jQuery(document).ready(function() { 
    if ( window.location.hash ) {

        function showVideo() {
            alert('in the function');
        }

        jQuery(window.location.hash).click(showVideo);

}
});

current click event triggers function

showVideo();
Share Improve this question asked Apr 22, 2014 at 13:12 esternleesternle 331 silver badge9 bronze badges 3
  • What do you mean by current click event triggers function? – Satpal Commented Apr 22, 2014 at 13:17
  • Do you actually want to TRIGGER a click or do you just want to add a click event listener? Your code does the latter. So if you click on the element with the same id as the hash, it should work. – devnull69 Commented Apr 22, 2014 at 13:18
  • the page has a click event that is also on a <a> link that will run the showVideo() function. I basically want to run that same action of clicking the <a> link but when the page loads by checking the hash value in the url. – esternle Commented Apr 22, 2014 at 13:19
Add a ment  | 

2 Answers 2

Reset to default 3

Use this

jQuery(document).ready(function() { 
    if ( window.location.hash ) {

        function showVideo(hash) {
            alert('in the function, hash -> ' + hash);
        }

        jQuery(document).click(showVideo(window.location.hash));

    }
});

If I remember correctly to trigger an event of certain element is:

$('elem').trigger('click');

So in this case:

$(document).ready(function() { 
    if ( window.location.hash ) {   
        $(window.location.hash).trigger('click');//and trigger the event when needed
   }
});

function showVideo() {
  alert('do something when click is trigger');
}

$('elem').click(showVideo); //assign the event function normally

本文标签: javascriptjquery detect hash in url trigger click eventStack Overflow