The capacity of an IEEE 802.11-based multi-hop wireless network is limited. By effectively utilizing multiple non-overlapping channels and multiple interfaces, collision and co-channel interference can be reduced. This allows more concurrent transmissions and thus enhances the network capacity. In this paper, we introduce an efficient distributed joint channel assignment and routing protocol, called J-CAR. Unlike existing schemes, J-CAR allows a data interface to dynamically change its routing protocol working mode between send and receive on a call-by-call basis, which distributed joint channel assignment enhances the utilization of both interface and channel. In J-CAR, channels are negotiated and assigned to active links in conjunction with the on-demand routing process. At each hop, J-CAR conducts a local optimization by selecting the least interfered channel according to the channel interference index. The channel interference index is designed by taking both the protocol and physical interference models into consideration. To find the least interfered path for network load balancing on a global scale, J-CAR employs a length-constrained widest-path routing. The ldquowidthrdquo of a path is determined by the interference level of its bottleneck link. With an adjustable threshold on the path length (with respect to the shortest-path), the excessively long path can also be avoided. We show that with a comparable complexity as the existing schemes, J-CAR provides much higher system good puts and shorter end-to-end packet delays.