Alternatively,

<script>
$(function(){
        window.test = function(){ console.log('hi')}
});

</script>

On Oct 24, 10:11 pm, Mike Alsup <[EMAIL PROTECTED]> wrote:
> > I'm trying to mix jQuery with some pre-existing JavaScript/HTML, but
> > I'm having what appears to be scope issues.
>
> > The code I'm working on already has a bunch of inline event handler
> > function calls in the HTML tags, and it'd be a ton of work to change
> > them all to the unobtrusive way via jQuery.  Now when I wrap all the
> > pre-existing function definitions into the jQuery document instance
> > (i.e., $(function(){ ... }), I'm able to slip in some jQuery.
> > However, all the function definitions are now no longer available to
> > the inline event handler calls.
>
> > Here's a simple demonstration.  In this example the test() function is
> > not available when the div.
>
> > <script>
> > $(function(){
> >         function test(){ console.log('hi')}});
>
> > </script>
>
> > <div onclick="test()" style="background-color:red; width:300px">hi </div>
>
> > Any ideas?  I'm assuming many others have run into this predicament.
>
> > Thanks for reading,
> > Eric P.
>
> Don't put those function definitions inside your private scope.  You
> need them to be global in order for the inline handlers to work.
>
> <script>
> function test(){ console.log('hi')}});
>
> $(function(){
>     // put code here that needs to run when DOM is loaded});
>
> </script>

Reply via email to