javascript
  • jquery
  • html
  • ajax
  • 2014-10-11 33 views 0 likes 
    0

    當單擊按鈕時,我將一段從ajax調用返回的HTML附加到代碼中的div元素。jQuery對附加HTML的訪問

    我想通過jQuery訪問這些id/class選擇器。

    例如....

    基本HTML

    <div id="codeToGoHere"></div> 
    

    第一個按鈕的OnClick事件調用Ajax事件:

    ajaxReturns - "<div id='thisDiv'>blah blah</div><div id='thatDiv'>blah blah</div>" 
    $("#codeToGoHere").append(ajaxReturns); 
    

    第二個按鈕onclick事件:

    $("#thisDiv").css("border", "1px solid red"); 
    

    這不起作用nd我假設因爲附加的代碼不可用時加載DOM。有沒有一種方法可以在DOM更改後重新評估,以確保我可以綁定到已出現的新元素?

    或...可能是一個更好的問題,是「我該如何做這項工作?」!

    感謝:-)

    回答

    2

    正如你已經suscpected,股利以後,而不是在當頁面加載DOM增加,因此,你必須使用事件代表團附加的點擊事件:

    $(document).on("click", "#thisDiv", function(){ 
        $(this).css("border", "1px solid red"); 
    }); 
    

    由於在你的問題中沒有按鈕,我只是將附加div上的點擊事件設置爲例子,假設你還附加了一個按鈕。
    而不是$(document)任何靜態父元素都可以作爲容器元素來委託事件。

    因爲它應該避免複製/粘貼到Stackoverflow(即使從自己的答案) - 我已經回答了類似的問題here與一些進一步的信息和事件委託jQuery的參考。

    2

    追加html後,您需要將該事件綁定到新添加的html。然後它會工作。要綁定,你可以使用這個。

    $("#thisDiv").click(function() { css("border", "1px solid red"); });

    你需要把這個功能只是下面的行之後。

    $("#codeToGoHere").append(ajaxReturns);

    相關問題