Jquery selectors jQuery选择器,包含术语“quot;javascript:";

Jquery selectors jQuery选择器,包含术语“quot;javascript:";,jquery-selectors,Jquery Selectors,如果我有这样的锚定标签: <A id=rgVistaRequestIssues_ctl00_ctl02_ctl03_CancelButton href="javascript:__doPostBack('rgGridIssues$ctl00$ctl02$ctl03$CancelButton','')"> Cancel</A> 但它根本不起作用 我们所做的工作是: $('a[href:contains("Cancel")]').click(function () { s

如果我有这样的锚定标签:

<A id=rgVistaRequestIssues_ctl00_ctl02_ctl03_CancelButton 
href="javascript:__doPostBack('rgGridIssues$ctl00$ctl02$ctl03$CancelButton','')">
Cancel</A>
但它根本不起作用

我们所做的工作是:

$('a[href:contains("Cancel")]').click(function () { selected = true; });
但这对我的口味来说还不够具体

选择器在运行时找不到术语“javascript:”有什么原因吗?在选择器有机会找到它之前,该问题是否得到解决


谢谢。

由于它适用于
:contains(“Cancel”)
,最有可能的原因是页面加载后Telerik动态添加了JavaScript

在这种情况下,使用附加到非更改祖先的委托事件处理程序将修复它

e、 g

它的工作原理是监听事件(单击)冒泡到一个未更改的祖先(
document
是默认值,没有其他更接近/更方便)。然后将选择器应用于气泡链中的元素。然后,它针对导致事件的任何匹配元素运行函数。这只要求选择器在事件发生时存在,而不是在注册事件时存在

委派的事件具有更快的连接时间(因为它们只将处理程序连接到一个元素),并且在事件时间添加的任何微小延迟都不会被注意到,因为您无法以足够快的速度单击鼠标使其显示:)


注意:不要在委派事件中使用
'body'
,因为它有一个与样式相关的错误,可能会导致鼠标事件不会冒泡到
body
(如果计算出的body高度为0)。

它在FireFox中工作正常。你用的是什么浏览器?下面是一个测试示例@JohnHartsock看起来也在ChromeNote中工作:您没有在HTML中的id周围加引号。我非常怀疑这是否是问题所在,但这可能是因为无论您在哪个浏览器中接收到错误。并且在IE9(IE7、8和9模式)下也可以工作。还可以使用所有版本的jQuery,因此我认为它在code.IE9中的其他地方一定是个问题(但与IE7+相关)
$('a[href:contains("Cancel")]').click(function () { selected = true; });
$(document).on('click', 'a[href^="javascript:"]', function () { selected = true; });