2013-12-12 112 views
0

所以我正在用自己的ID創建多個信息圖片。Jquery與多個圖像進行交互

var inc = ""; 
for(int i = 0; i < itemList.length; i++) 
{ 
    var inf = "info"; 
    var conc = inf.concat(i); //dinamically creating info0, info1, info2, info3.....      

    inc += "<span id=" + '"' + conc + '"' + ">"; 
    inc += "<a class='infobutton' "; 
    inc += ' href="Javascript: void(0)">'; 
    inc += '<img border="0" width="30" height="30" src="images/info.png"></a></span>'; 
} 

因此,每個圖像將會有一個名爲ID,info0,INFO1等。 我想使用jQuery創建單獨的對話框每個圖像,我用這個。

$(function() 
{ 
    for(var i = 0; i < itemList.length; i++) 
    { 
     $("#info" + i).on("click", function() 
     { 
      $("#dialog").dialog("open"); 
     }); 
    } 

    $("#dialog").dialog(
    { 
     autoOpen: false 
    }); 
    $("#dialog").dialog(
    { 
     modal: true, 
     resizable: false, 
     buttons: 
     { 
      "Close": function() 
      { 
       $(this).dialog("close"); 
      } 
     } 
    }); 
}); 

不用說,它不工作,我沒有線索,也許我想要使用的東西,它不是如何jQuery的工程。謝謝。

回答

0

使用http://api.jquery.com/delegate/作爲事件。您可以動態插入到DOM中,以便它們不會在插入的元素上工作。

$('body').delegate($("#info"+i), 'click', function(){ 
    $("#dialog").dialog("open"); 
}); 

而且最好是使用一類像.open_dialog和創建活動一次,而隨後在循環條安裝每次迭代到一個單一的元素。

0

我相信不是:

for(var i = 0; i>itemList.length; i++) 
{ 
    $("#info" + i).on("click", function() 
    { 
     $("#dialog").dialog("open"); 
    }); 
} 

可以做到這一點(進入您的圖像放入一個div):

$("div").on("click", "img", function{});