Cache-enabled heterogeneous cellular networks (HCNs) have been investigated extensively to alleviate backhaul congestion and reduce content delivery delay. In this paper, we jointly optimize content placement and user association to minimize the average content delivery delay in cache-enabled HCNs based on flow-level models. This formulation considers (1) different timescales of content placement and content delivery, (2) locality of content popularity, and (3) the heterogeneity of spatial traffic distribution, which are often neglected in existing researches. The joint optimization problem is formulated as a mixed integer nonlinear programming problem in load-non-coupled and load-coupled models, respectively. We decouple this problem into two interrelated subproblems and resolve them individually. For the user association problem under a given content placement situation, we propose a content-level selective association algorithm, which allows the requests for different contents at the same location to connect to different base stations (BSs). In addition, we propose a greedy content caching algorithm to add contents to the caches of BSs in an iterative manner. These two algorithms are alternately executed until the caches of all the BSs are filled to capacity. Simulation results show that the proposed algorithm achieves better performance in terms of average delay and backhaul usage compared with traditional content placement and user association approaches.