通过服务链接到 jQuery 按钮

Linking button to jQuery through service

本文关键字:jQuery 按钮 链接 服务      更新时间:2023-09-26

我有一个小问题,应该很容易克服。出于某种原因,我无法解决这个问题。所以问题是我无法获得链接到某个 jquery 的按钮。我的设置如下(显示相关代码):

默认.aspx

j查询:

function getContent() {
    var data = {
        numberID: 1
    };
    $.jsonAspNet("ContentService.asmx", "GetContent", data,
    function (result) {
        $('#content').html(result);
    });
}
jQuery(document).ready(function () {
    getContent();
});

.HTML:

<div id="content"></div>

内容服务.vb

<WebMethod()> _
Public Function GetContent(number As Integer) As String
        Dim sb = New StringBuilder
        sb.AppendLine("<table>")
        sb.AppendLine("<tr>")
        sb.AppendLine("<td class='ui-widget-header ui-corner-all'>Number</td>")
        sb.AppendLine("</tr>")
        sb.AppendLine("<tr>")
        sb.AppendLine("<td>" & number & "</td>")
        sb.AppendLine("<td><a href='#' id='test' class='fg-button ui-state-default ui-corner-all'><img src='" & Context.Request.ApplicationPath & "/images/spacer.gif' class='ui-icon ui-icon-pencil' /></a></td>")
        sb.AppendLine("</tr>")        
        sb.AppendLine("</table>")
        Return sb.ToString
    End Function

所以这就是我拥有一切工作的基础知识,但我不确定如何让一个按钮(id='test')链接到一些jQuery。我希望按下它并弹出一个弹出窗口。

我试图将jQuery放在default.aspx但是除非按钮放置在该页面上的HTML中,否则这似乎不起作用。

$('#test').unbind('click').click(function () {
    alert('Working');
});

我相信这很容易做到,但我已经尝试了一段时间,似乎无法让它工作。

您尝试绑定到尚不存在的元素的问题是否仍然存在?

您是否在服务恢复之前致电$('#test').unbind('click').click(function () { alert('Working'); });

$('#test').on('click', function () {
      alert('Working');
});

一旦将事件插入到 DOM 中,这会将事件绑定到"#test"元素。

当您通过 ajax 加载内容时,您必须绑定到 $('#content') .喜欢这个:

$(function () {
    $('#content').on('click', '#test', function () {
        e.preventDefault(); // if a default action is not needed needed
        alert('Working');
    });
});

我想这是关于不阻止 A href 标签的默认行为。现在它可能会链接到"#",而不是触发 onclick 事件。

$('#test').on('click', function (e) {
    alert('Working');
    e.preventDefault();
});

您可以尝试将其包装在准备好的文档中,或者最终使用 jQuery 中的.on活页夹,因为它是动态内容。

已解决

这是一件非常小的事情导致了这种情况。解决此问题的代码如下:

$('#test').unbind('click').click(test);

这需要与json一起进入函数内部,因此:

function getContent() {
    var data = {
        numberID: 1
    };
    $.jsonAspNet("ContentService.asmx", "GetContent", data,
    function (result) {
        $('#content').html(result);
        $('#test').unbind('click').click(test);
    });
}

感谢所有试图帮助我的人。