如何为链接创建onclick

时间:2013-02-21 11:44:11

标签: javascript jquery onclick href

我有一个div我在运行时动态设置值,如果有值而不是我启用或创建一个链接,它将onclick方法我将调用{{1}方法。

如何在javascriptjquery

中执行此操作

我将值设置为javascript,如下所示,

div

这个div:

document.getElementById('attachmentName').innerHTML=projectInforamtionMap.Cim_AttachmentNames;

请帮助我找到并修复。

最好的问候

7 个答案:

答案 0 :(得分:4)

您可以设置onclick功能:

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

jquery方式:

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

答案 3 :(得分:1)

假设您的功能先前已定义为

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

添加innerHTML后

在Javascript中

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

在Jquery

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

答案 4 :(得分:1)

您可以通过以下方式在div中插入链接来执行此操作

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

你也可以通过以下方式在jQuery的帮助下实现它。

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

为此你必须在页面上包含jQuery liabray。参考jQuery.com

如果您真的希望在Div中包含该链接,那么以下是它的代码

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

希望这会有所帮助。

答案 5 :(得分: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元素。在这种情况下,它并不重要,但在其他情况下,您可能愿意将相同的事件附加到元素集合,而不仅仅是一个。

因此,使用这种方法,事件附加到正文但适用于单击的元素,而不是将相同的事件附加到每个元素,因此它更有效:)

答案 6 :(得分: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');
                }
            });
        }