jquery';s.click()不';不行?
当有jquery';s.click()不';不行?,jquery,Jquery,当有 <a href="javascript:onclick:alert('hi')"> click </a>. 。 为什么$('a')。单击()不会弹出警报?它不起作用的原因是,您没有正确附加click事件,而是通过将其放入href值中进行了黑客攻击。将其链接到#或真正的url,永远不要将JS内联放置。然后从外部附加事件处理程序: $('a').click(function(e) { e.preventDefault() alert('hi')' }
<a href="javascript:onclick:alert('hi')"> click </a>.
。
为什么
$('a')。单击()
不会弹出警报?它不起作用的原因是,您没有正确附加click事件,而是通过将其放入href值中进行了黑客攻击。将其链接到#或真正的url,永远不要将JS内联放置。然后从外部附加事件处理程序:
$('a').click(function(e) {
e.preventDefault()
alert('hi')'
});
然后使用
.trigger('click')
触发,如果您需要手动执行此操作。您是在锚中使用普通javascript还是使用jquery。如果要使用jquery,请执行以下操作:
$('a').click(function (e) {
e.preventDefault();
alert('hi');
});
。。并将href=“”中的代码删除为其他内容,如a href=“#”问题在于您的href代码。有两种方法可以在用户单击链接调用时使其成为javascript函数:
<a href="javascript:alert('hi');">click</a>
<a href="" onclick="alert('hi');">click</a>
现在您可以使用jquery代码单击链接。我想这就是您想要的:
<a href="#" onclick="alert('hi')"> click </a>
无法触发单击事件的原因是您没有设置任何单击事件 代码中的
onclick:
与onclick
事件无关,它只是一个标签。把它命名为一个事件并不会使任何特别的事情发生
因此,您的代码相当于:
<a href="javascript:alert('hi')"> click </a>
如果需要事件,请使用onclick属性:
<a href="somepage.html" onclick="alert('hi');"> click </a>
有一种方法可以使点击触发器与href一起工作。必须使用事件目标将window.location调用绑定到click事件。这将导致触发任何onclick操作,后跟href目标。像这样:
$("a").click(function(event) {
window.location = event.target.href;
});
$("a").trigger("click");
有些情况下,您无法将操作从
href
移动到onclick
。(如ASP.NET回发链接按钮)
我在下面编写了href
动作感知函数,以在这种情况下触发单击:
function triggerClickEvent(element) {
var e = $(element).click();
if (e.attr('href').indexOf('javascript:') === 0)
eval(e.attr('href').replace('javascript:', ''));
}
我发现这个问题的解决方案是通过链接导入JQuery,而不是将它放在本地主机上。我用的是Kohana,神奇的是它也用了。你是说onclick吗?onclick有什么问题?它是一个内联事件处理程序,最好将内容、表现和行为(网页设计的三脚凳)分开。是的。为什么它对我不起作用?另外,当确实存在href URL时,为什么.trigger('click')不让浏览器导航?为什么不能在外部附加事件处理程序,如yoda和我的答案所示?不推荐使用内联事件处理程序。meder,我需要直接“单击”元素。例如,我做了这个$('a')。触发器('click');“>单击我什么都没发生……我需要按字面意思“单击”一个元素。例如,我做了这个$('a')。触发('click');什么都没发生这不会第一次修复双击。
function triggerClickEvent(element) {
var e = $(element).click();
if (e.attr('href').indexOf('javascript:') === 0)
eval(e.attr('href').replace('javascript:', ''));
}