返回列表 發帖

[問題]jquery&ajax回傳問題(已解決)

站上各位大大好,小弟在本站吸收了不少知識,因為都沒註冊
但拜讀了jquery後,卻遇上了問題,所以剛註冊就來請教,真不好意思...

問題:

小弟寫了一個jquery的ajax,但回傳回來的值,無法再觸動

例如:
<script>
$(document).ready(function(){
   $.ajax({
        type: "POST",
        url: "data.php",
        data: false,
        cache: false,
        success: function(content){
        $("#mDiv").html(content);
        }
        });
  });
</script>
<body>
<div id='mDiv'></div>
<div id='bbb'>click me!</div>
</body>
回傳的值為:
<div id='aaa'>hello world!</div>

若以回傳的id「aaa」寫觸發,但卻無法動作
<script>
$(document).ready(function(){
        $('#aaa').click(function(){
                $('#aaa').html("hello ajax!");
        });
});
</script>
但若寫成這樣卻是可以動作
<script>
$(document).ready(function(){
        $('#bbb').click(function(){
                $('#aaa').html("hello ajax!");
        });
});
</script>
請教站上大大該如何解決呢?? 萬分感激

[ 本帖最後由 xxoxxoxxoxx 於 2009-10-23 14:10 編輯 ]

原帖由 wmh 於 2009-9-28 22:34 發表
因為你在  document ready 時寫觸發,但是那時候的 id「aaa」並不存在,有兩種做法:

  • 在 ajax success 的 callback 內寫觸發 event
  • 如果是用 jquery 1.3 以上的版本,可以改用 live() 寫觸發 event,一開始 #aaa 不存在 ...



  • 太感謝大大了,已解決問題了

    原來使用live()觸發可以解決,請問大大live跟 document ready還有那些差別呢?
    如果live這麼好用,是不是都使用live就好了?

    另外「ajax success 的 callback 內寫觸發 event」是什麼意思呢?大蓋要如何寫呢?大大能否提供一些提示

    總之,真的太感謝了,繼續努力拜讀

    jsGears好棒
    wmh大 更棒

    TOP

    原帖由 wmh 於 2009-9-29 08:32 發表
    使用 live 應該是把 event handler 綁在 document.body,所以即使 element 一開始不存在,等 element 出現時馬上就有作用,其實是 document.body 的事件驅動,藉此模擬該 elment 的事件驅動。

    在 callback 內才 bind 大致像 ...


    原來是這樣,感謝大大

    請教大大,若live使用太多效能會不會比較差呢?

    這2種寫法,效能上會有差異嗎?

    TOP

    我發現若用live要觸發focus及blur無法動作說
    如<input type='text' id='aaa'>
    $(#aaa).live("focus",function(){
        ......
        .......
    });
    但若是直接在document ready使用focus()跟blur()是可以動作的
      
    $(document).ready(function(){
        $("#aaa").focus(function(){
          ......
          .......
        });
    });
    不知道該如何解決呢?

    另外想再請教

    若button1使用click觸動div1
    button2觸動div2
    button3觸動div3
    button4觸動div4
    ...
    多組的話該如何寫呢?
    有望大大解答,真的是萬分感激

    [ 本帖最後由 xxoxxoxxoxx 於 2009-9-29 16:21 編輯 ]

    TOP

    感謝大大回復,多組的資料是用php印出來的
    想說資料如果變多的話,寫多個好像沒效率...
    主要是傳出來的資料,旁邊搭配一個按鈕,click後觸發該div變成一個input text
    裡面則是原本div的text

    不知道大大懂我的意思嗎?所以若10筆資料,不就要寫10個click觸發

    TOP

    感謝大大,我再研究看看

    TOP

    返回列表 回復 發帖