当点击任何一组特定锚点时,我正在使用一个函数来触发 这适用于Firefox 3和Chrome。
当页面首次开始加载时,它们不存在,因为它们是由XML + XSLT使用客户端转换创建的,以防万一这是相关的。
我也只是把警报放在那里只是为了看看它是否甚至做了什么......甚至在IE中都没有警报。它不能在Chrome中工作,但那是因为我错过了$ document.ready语句[仍在FF中工作]但我不确定IE的缺失元素是什么。我正在使用IE 8顺便说一句。
<script type="text/javascript">
$(document).ready(function () {
$("#BlogSelectList li a").click(function () {
alert('hhi')
var str = ($(this).attr("href")).slice(1, 37)
$.ajax({
contentType: "application/json; charset=utf-8",
url: '../ws/WebServices.asmx/SetActiveBlog',
data: '{ActiveBlogID: "' + str + '"}',
dataType: 'json',
type: "post",
success: function (j) {
window.location.href = 'dashboard.aspx'
}
});
});
})
</script>
答案 0 :(得分:1)
当doc首次加载时,锚点不存在可能是相关的。您可以使用live方法快速修复。即使稍后将其添加到DOM,这也会将您的事件应用于您选择的任何事件。
$("#BlogSelectList li a").live("click", function() {etc...});
此外,如果您正在使用锚点,则可能需要将href属性设置为“#”,以便它不会触发浏览器在某处导航的默认行为。
答案 1 :(得分:0)
<script type="text/javascript" src="jquery-1.6.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#click").click(function () {
alert('hhi');
});
});
</script>
<table>
<tr><td id='click'>ravi</td></tr>
</table>
在IE8中尝试这个并告诉我。 一旦此代码由于IE8中的弹出窗口阻止程序而未运行。 删除弹出窗口拦截器