Regarding edge triggering and level triggering in flip flops
For purposes of understanding, you can think of an edge-triggered flip-flop as being constructed from two level-sensitive latches. One latch holds when the clock is high and the other holds when the clock is low. The Q output from the first latch is connected to the D input of the second. The D input to the first latch is the D input to the flip-flop, and the Q output of the second latch is the Q output of the flip-flop.

One of these latches is always transparent and one is always holding, regardless of the level of the clock signal. So, the Q output of the flip-flop can change value only at the instant in time when the clock signal changes value.