6

我有一个div我在运行时动态设置的值,如果有比我启用的值或创建一个链接,该链接将具有onclick我将调用方法的javascript方法。

如何在jqueryor中执行此操作javascript

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

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

这是 div :

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

请帮助我找到并修复。

最好的祝福

4

7 回答 7

7

您可以设置 onclick 功能:

document.getElementById('attachmentName').onclick = function() {};
于 2013-02-21T11:45:11.623 回答
2

假设您的函数以前是这样定义的

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

添加innerHTML后

在 Javascript 中

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

在jQuery中

$("#attachmentName").attr('onclick','foo()');
于 2013-02-21T11:48:05.850 回答
2

你有几种选择

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 替代方案之间,最后一个是最好的。原因是因为您只是在正文元素上附加了一个事件。在这种情况下,这无关紧要,但在其他情况下,您可能愿意将相同的事件附加到元素集合,而不仅仅是一个元素。

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

于 2013-02-21T11:54:32.290 回答
1
$('#attachmentName').click(function(){
     //do your stuff 
})
于 2013-02-21T11:47:04.127 回答
1

jquery方式:

$("#attachmentName").click(function() {
  some_js_method();
});
于 2013-02-21T11:47:30.813 回答
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);
                        });

希望这会有所帮助。

于 2013-02-21T11:52:34.053 回答
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 显示/隐藏)

 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');
                }
            });
        }
于 2015-09-22T15:20:39.207 回答