Why isn't the page cal back needed in Ajax jQuery? In the following code, I didn't set any page arguments, but I can still tse the parameter in example_result(). Why it works?
function example_menu() {
  $items['example-menu'] = array(
    'page callback' =&gt; 'example_result',
    'access arguments' =&gt; array('access content'),
    'type' =&gt; MENU_CALLBACK,  
  );
  
  return $items;
}

function example_result($para) {
  $items = array('a', 'b', 'c');
  return drupal_json(array('values' =&gt; $items));
  exit;
}
That is explained in the examples shown for hook_menu().

 function mymodule_menu() {
    $items['abc/def'] = array(
      'page callback' =&gt; 'mymodule_abc_view',
    );
    return $items;
  }

  function mymodule_abc_view($ghi = 0, $jkl = '') {
    // ...
  }


Using the code above, and accessing the page as http://example.com/abc/def, the page callback would get 0 and '' as arguments; accessing the page as http://example.com/abc/def/123/foo, $ghi will be equal to 123, while $jkl will be equal to 'foo'.

That is the default behavior of Drupal.

You could also use wildcards arguments, but in that case those arguments should be passed in the URL.