天天看點

jq 代碼中的on不起作用原因分析

由于我在原來的代碼中使用了較早版本的JQ,是以代碼如下:

$('#fileupload').find('.loaded span').live('click', function () {

            ***

        });

其中綁定事件使用了live。當我使用新版本的JQ時,live就不被支援,代替它使用的是on。 

$('#fileupload').find('.loaded span').on('click', function () {

            ***

        });

可是當我将live替換成on時,發現事件綁定失敗。經過N多資料的查詢後,終于發現:因為live 是綁定在docuement上的..任何時候 document都是存在的,當用的on  綁定在.loaded span上時,由于.loaded span這時并不存在綁定自然就失敗了。

于是就将以上代碼更改如下:

$('#fileupload').on('click', '.loaded span',function () {

            ***

        });

完工。下面我介紹一下

$('#fileupload').find('.loaded span').on('click', function () { *** });

$('#fileupload').on('click', '.loaded span',function () { *** });

這兩句話的不同,如果在deo中fileupload>loaded>span存在的話,上面兩句效果一樣。當loaded>span在初入載入時不存在時,就隻能使用下面一行的方法進行綁定。