2013-02-21 157 views
4

我有一個div其中我運行時動態設置值,如果有價值比我有啓用或創建一個鏈接,將有onclick方法,我將調用javascript方法。如何創建一個鏈接的onclick

如何在jqueryjavascript中做到這一點?

我設定值的div像下面,

這個DIV:

<tr> 
    <td align="left"><div id="attachmentName"> </div></td> 
</tr> 

請幫我找到並修復。

問候

+0

在javascript中使用.setAttribute。 – Dineshkani 2013-02-21 11:46:13

回答

4

您可以設置的onclick功能:

document.getElementById('attachmentName').onclick = function() {}; 
+0

我只是把警報,但它不適用於所有給出的答案 – 2013-02-21 12:03:23

+0

你可以在JsFiddle上做一個樣本嗎? – 2013-02-21 12:04:13

+1

看這個示例[JsFiddle](http://jsfiddle.net/gRgfa/) – 2013-02-21 12:06:39

1
$('#attachmentName').click(function(){ 
    //do your stuff 
}) 
1

jQuery的方式:

$("#attachmentName").click(function() { 
    some_js_method(); 
}); 
1

假設你的函數是以前這樣定義

function foo(){alert('function call');} 

添加的innerHTML

在Javascript中

document.getElementById('attachmentName').setAttribute('onclick','foo()'); 

jQuery中

$("#attachmentName").attr('onclick','foo()'); 
1

後,你可以做到這一點沒有在下列方式

document.getElementById("attachmentName").onClick = function() { 
                    alert(1); // To test the click 
                   }; 

您可以在插入在div鏈接用它來實現它以下面的方式幫助jQuery。

$("#attachmentName").click(function() 
             { 
              alert(1); 
             }); 

爲此,您必須在頁面上包含jQuery liabray。參考jQuery.com

不過,如果你forecefully想在事業部則下面的鏈接是它

var link = $("<a>"+ $("#attachmentName").text() +"</a>"); 
$("#attachmentName").html($(link); 
link.click(function() { 
          alert(1); 
         }); 

希望這將有助於代碼。

1

您有幾種選擇

的JavaScript:

// var elem = document.getElementById('attachmentName'); 
elem.onclick = function() {}; 
elem.setAttribute('onclick','foo()'); 
elem.addEventListener('onclick', foo, false); // The most appropiate way 

的jQuery:

// var elem = $('#attachmentName'); 
elem.click(foo); 
elem.on('click', foo); 
$('body').on('click', elem, foo); 

3個jQuery的選擇之間,最後一個是最好的之一。原因是因爲你附加一個事件只是body元素。在這種情況下,這並不重要,但在其他情況下,您可能願意將同一事件附加到一組元素,而不僅僅是一個。

因此,使用這種方法,該事件被連接到主體,但適用於元素點擊,而不是相同的事件附接至每一個元素,所以它的更有效的:)

0

如我被轉換古典asp詳細信息頁面轉換爲單頁面ajaxified頁面,我轉換頁面中的現有鏈接以獲取在同一頁面中加載到DIV中的詳細信息。我將href標籤重命名爲dtlLink,並在jquery load()函數中獲取了這些數據。

detail.asp(server.urlencode加入,在這裏需要)

<a href=""#"" onclick=""javascript:LoadDetails(this)"" dtllink="detail.asp?x=" & Server.URLEncode(Request("x"))&y=" & Server.URLEncode(Request("y")) > link text </a> 

parent.asp(它有holdon.js微調圖像一些額外的代碼,按鈕開啓/關閉,導致DIV顯示/隱藏) Jquery

function LoadDetails(href) { 
//get the hyperlink element's attribute and load it to the results div. 
      var a_href = $(href).attr('dtllink'); 
      console.log(a_href); 
      $('#divResults').html(''); 



      DisplayHoldOn(); 
      $('#divResults').load(a_href, function (response, status, xhr) { 
       $('#divCriteria').hide(); 

       HoldOn.close(); 
       if (status == "error") { 
        var msg = "There was an error: "; 
        $("#divResults").html(msg + xhr.status + " " + xhr.statusText); 
        $('#divCriteria').show(); 
        $("#cmdSubmit").removeAttr('disabled'); 
       } 
      }); 
     }