You can see the example below, do you know what will be alerted?
////////////////////////////////////////
<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/
nightlies/jquery-nightly.js"></script>
    <script type="text/javascript">
        function callback(args)
        {
            alert(typeof args)
        }
        function f1()
        {
            $('#parent').load('jq.html', null, callback)
        }
    </script>
</head>
<body>
<a href="#" onclick="f1()">Go</a>

<div id="parent">

</div>
</body>
</html>
////////////////////////////////////////////////////////////////////////
In jquery's source:
line 2451:               self.each( callback, [res.responseText,
status, res] );
I found the callback function should have a array argument which
includes three elements, but when the callback function is called, it
can only get the first element of the array.

After some test, I found where the problem is :

in line 740:   if ( callback.apply( object[ i ], args ) === false )

the usage callback.apply has problem,  if I change  "callback.apply"
to "callback.call", it can work correctly, though I don't know what
the real reason is.

Is it a bug?
Anyone can explain?

Reply via email to