2017-02-02 84 views
2
function test() { 
    $.getJSON("/Home/GetAp", function (result) { 
     $.each(result, function() { 
      if (this.is_disabled == "False") { 
       var a = $("#MainDiv") 
          .append('<div id="imagewrap"><img id="infobutton" src="/Content/information%20icon.png" /></div>') 
          .val(this.id); 
      } else if (this.is_disabled == "True") { 
       var a = $("#MainDiv") 
          .append('<div id="imagewrap"><img id="infobutton2" src="/Content/information%20icon.png" /></div>') 
          .val(this.id); 
      } else { 
       return null; 
      } 
     }) 
    }) 
} 

我怎麼會窩和Ajax功能,能夠發佈的a.val(),這樣當用戶點擊任何$(「#infobutton」),他們將能夠使用這將是一個id特定於該按鈕築巢阿賈克斯後得到

$("#infobutton").click(function() { 
    $.ajax({ 
     type: "POST", 
     contentType: 'application/json; charset=utf-8', 
     url: "/Home/setID", 
     data: JSON.stringify({ id: this.id }), 
     success: function (result) { 

     } 
    }); 
}); 
+0

的可能的複製[事件綁定的動態創建的元素嗎?](http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-元素) –

+0

'val(...)'調用應該在'div'包裝上做什麼? – Igor

+0

'if ... else if ...'部分只爲id添加'2'? – Andreas

回答

0

不要讓你的邏輯按鈕的VAL取決於重複id的DOM元素,使用class代替。

使用事件委託爲事件註冊時存在的元素和將在稍後創建的元素註冊事件處理程序。

.append('<div id="imagewrap"><img class="infobutton" src="/Content/information%20icon.png" /></div>') 

$(document).on("click",".infobutton",function() { 
    $.ajax({ 
    ... 
    }); 
}); 
+0

試過了,但是當我檢查方法setID中id的值時,它顯示id爲空 – DynamicallyLinear

+0

「檢查方法中id的值setID「 - 它甚至意味着什麼? – Igor

0

無需嵌套ajax調用。只需確保點擊事件綁定到附加的新元素,並在點擊事件處理程序中獲取該ID。類似的例子(沒有Ajax調用)

$(document).ready(function(){  

$(document).on('click', '.info', function(e) { alert("clicked div # " + $(e.target).text()); }); 

setTimeout(function(){ $("#d1").append("<div class='info'>Click info 1.</div>"); }, 1000); 
setTimeout(function(){ $("#d1").append("<div class='info'>Click info 2.</div>"); }, 2000); 
setTimeout(function(){ $("#d1").append("<div class='info'>Click info 3.</div>"); }, 3000); 
}); 

<div id="d1"> 

</div> 

讓我知道如果您需要了解更多信息或例如用Ajax調用。

對於ID可以

$(document).on('click', '.info', function(e) { alert("clicked div # " + e.target.id); });