2013-03-07 10 views
0

我使用jQuery AJAX的新內容加載到頁面,在服務器端我打開一個新的div:通過onmousedown事件運行的js函數爲新增加的AJAX

<div id="newFuncDiv" onmousedown="javascript:newFunc("VAR");">Click me</div> 

在以前的情況下,我使用的功能如下:

function newFunc(){$("#newFuncDiv").click(function(){alert("something");});} 

但是在這種情況下的onclick這個div我需要通過一個變量,這是我從數據庫中提取服務器端的,我怎麼能做到這一點,因爲即使當我添加了newFunc( );與Ajax響應它不工作,

編輯:

對了,忘了說,我是從循環服務器的響應,因此變量i需要傳遞的會是每個格獨特。

+0

你能澄清你想用'VAR'做什麼..它看起來像你試圖傳遞一個值到'newFunc()',但在你的函數中你沒有任何列出的參數也不實際使用任何變量? – 2013-03-07 08:28:41

+0

目前尚不清楚你想要做什麼。爲什麼您的mousedown處理程序爲相同的元素建立點擊處理程序?每次您將鼠標放下時,您都會添加另一個點擊處理程序,以便您獲得多個警報。 – Barmar 2013-03-07 08:43:44

回答

-1

您可以將變量保存到一些屬性,每個格並分配相同的一類,以這樣

<div class="clickme" id="youvar1"></div> 
<div class="clickme" id="youvar3"></div> 
<div class="clickme" id="youvar3"></div> 

每個格然後在jquery的

$(document).ready(function(){ 
    $(".clickme").click(function(){ 
    var uniquevar = $(this).attr('id'); 
    /*your ajax code here*/ 
    }); 

}); 

希望這個幫助

+0

@RavinderSingh bcoz這可以幫助其他人誰正在尋找相同的解決方案... – ravisoni 2013-03-07 08:32:09

+0

由於元素是通過AJAX動態添加的,因此您需要使用'.on'來委託。您的代碼僅適用於首次加載DOM時存在的元素。 – Barmar 2013-03-07 08:40:01

+0

非常感謝! – durian 2013-03-07 08:45:25

0

您可以使用this引用該分區。

function newFunc(myVar) { 
    $(this).click(function(){ 
     alert(myVar); 
    }); 
} 
+0

首先感謝,但這仍然不能解決變量傳遞問題,順便編輯我的問題 – durian 2013-03-07 08:21:00

1

因爲你使用jQuery,我會建單擊處理jQuery的風格和附加數據對象的HTML元素:

<div id="newFuncDiv" data-foo="bar">Click me</div> 

$("#newFuncDiv").on('click',function(){ 
    alert("something" + $(this).data('foo')); 
}); 
+0

您需要使用'.on()'委託形式,因爲元素是動態添加的。 – Barmar 2013-03-07 08:40:43

+0

不是嗎?哦,我做到了! @Barmar – Imperative 2013-03-07 08:43:50

+0

沒用評論沒有,代表團的形式是'$( '身體')上( '點擊', '#newFuncDiv',函數(){...});' – Barmar 2013-03-07 08:45:01

相關問題