2013-07-12 37 views
2

將有獨特的DIV ID創建這樣的格數, 當我點擊點擊我應該表現出警惕的是產品ID, 我做它像綁定click函數來動態的div

<div id="xyz{productid}"> 
    Click Me 
</div> 
..... 
<script type="text/javascript"> 
    var uuid="{productid}" 
</script> 
<script src="file1.js"> 
從file1.js

$(function() { 
    var d = "#xyz" + uuid; 
    $(d).click(function() { 
     alert("Hello" + uuid); 
     return false; 
    }); 
    alert(d); 
}); 

代碼,所以代碼也行,但它的基本問題是, 因爲即時通訊做分類頁面上,我們有產品編號,這個功能是越來越勢必最後一個產品只有瓷磚, 我希望它被綁定到那個特定的div只有它被稱爲

............................ .. 得到了一個解決方案 抱歉,遲到的回覆,是在週末假期,但我解決了它的類體系結構,我們創建一個對象與頁面上的每個瓷磚,並在頁面加載時,我們初始化所有類的變量,這樣你就可以得到單獨的DIV ID,當一個函數綁定到它,仍然可以使用其類變量的數據,我在這裏發佈我的代碼,如果任何人希望可以使用它,

UniqeDiv= new function() 
{ 
var _this = this; 
var _divParams = null; 
var _uuid=null; 
//constructor 
new function(){  

//$(document).bind("ready", initialize); 

//$(window).bind("unload", dispose); 


_uuid=pUUID; 

initialize(); 

$('#abcd_'+_uuid).bind("click",showRatingsMe) 

dispose(); 


} 

function initialize(){ 

} 
function showRatingsMe(){  
    alert(_uuid);  
} 
function dispose(){ 
    _this = _divParams = null 
} 
} 
//In a target file, im including this js file as below 
<script type="text/javascript"> 
    var pUUID="${uuid}";   
</script> 
<script type="text/javascript" src="http://localhost:8080/..../abc.js"></script> 
+0

所以問題就像它沒有綁定點擊事件到所有的div,但它只爲最後的div做它,我把這些div作爲一個頁面上的圖塊和這個腳本也與每個圖塊,所以我肯定有每個瓷磚的功能,但問題是,它沒有綁定與它加載它的div ... – user2408578

+0

請[編輯]你的問題,並添加相關信息。如果你只是把它作爲評論,它會得到較少的關注。我假設在你運行代碼的時候,'uuid'將具有最後一個div的值。既然你不知道如何創建多個元素,我認爲我們不能提供任何幫助。請提供更多信息。 –

回答

2

您可以使用attribute selector with starts with通配符jQuery on()爲動態添加的元素綁定click事件。

$(document).on("click", "[id^=xyz]", function(){ 
    //your code here 
    alert("Hello"+this.id); 
    return false; 
}); 
+0

其相同的問題,因爲它總是發現第一個div開始與該xyz它將綁定所有功能與該div只,同樣是我的經驗,當我調試它,當我點擊產品瓷磚上的第一個按鈕,它給了我10個警報,因爲那裏我的分類頁面上有10種產品 – user2408578

+0

您是否在使用任何循環? – Adil

+0

是我使用循環在頁面上顯示這些產品,並且在每次迭代中調用此js文件(file1.js)並向其發送參數,這是uuid – user2408578

0

我會爲每個動態div添加一個類,以便它們更容易查詢。在下面的示例中,我使用類dynamic來標記動態添加的div,並且應該應用此點擊偵聽器。

要附加事件,可以使用jQuery的on()函數使用委託事件。委託事件將觸發對DOM的當前和未來的元素:

$(function() { 
    var d="#xyz"+uuid; 
    $(document).on('click', 'div.dynamic', function() { 
     alert("Hello"+uuid); 
     return false; 
    });  
}); 

你可以閱讀更多有關事件代表團here

+0

什麼是div.dynamic這裏是我的困惑,對不起我的壞 – user2408578

+0

@ user2408578好問題;我沒有真正解釋它。一個可以添加到所有動態div的類,使它們更容易查詢。我更新了我的答案以澄清。 – cfs

+0

感謝您對此新手的快速支持,增加了我的知識 – user2408578

0

您可以使用

$( 「[ID * = '_ DIVID']」)點擊(函數(){} )。

但爲此,您需要確保所有div ID都以「divid_」開頭。

+0

與之前的回覆相同,但感謝您的快速支持 – user2408578