我有一个很容易克服的小问题。出于某种原因,我无法解决这个问题。所以问题是我无法获得一个链接到一些jquery的按钮。我的设置如下(显示相关代码):
jQuery的:
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>
<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');
});
我确信这很容易做到,但我已经尝试了一段时间,似乎无法让它发挥作用。
答案 0 :(得分:1)
当您通过ajax加载内容时,您必须绑定到$('#content')
。像这样:
$(function () {
$('#content').on('click', '#test', function () {
e.preventDefault(); // if a default action is not needed needed
alert('Working');
});
});
答案 1 :(得分:1)
您尝试绑定到尚未存在的元素的问题是什么?
你是在服务返回之前调用$('#test').unbind('click').click(function () {
alert('Working');
});
吗?
$('#test').on('click', function () {
alert('Working');
});
一旦将事件插入DOM,它就会将事件绑定到'#test'元素。
答案 2 :(得分:0)
我想这不会阻止A href标签的默认行为。现在它可能会链接到'#'而不是触发onclick事件。
$('#test').on('click', function (e) {
alert('Working');
e.preventDefault();
});
您可以尝试将其包装在文档中,或最终使用jQuery中的.on
绑定器,因为它是动态内容。
答案 3 :(得分:0)
引起这种情况是一件非常小的事情。解决此问题的代码如下:
$('#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);
});
}
感谢所有帮助过我的人。