jQuery链接而不是按钮触发器

时间:2016-08-12 13:32:54

标签: javascript jquery

所以,我有这个代码片段打开一个模态:

<button id="trigger-overlay" class="order">Open Overlay</button>

现在,我想将它包含在Wordpress菜单中,但我无法在那里添加按钮标记,所以我补充说:

<a href="#" class="order">Open Overlay</a>

我正在使用jquery为该链接添加ID,如下所示:

$('.order').attr('id','trigger-overlay');

ID已添加,但链接没有打开任何内容,也就是说,它链接到“#”而不是打开模态... 我怎么能解决这个问题才能使它发挥作用?

谢谢!

3 个答案:

答案 0 :(得分:0)

这件事可能是由于事件发生命令造成的。因此,您的代码$('.order').attr('id','trigger-overlay');正在点击的绑定事件后立即执行(我认为该事件看起来像这样:$('#trigger-overlay').click(function() { ... });。 如果您有能力更改该绑定,请使用jquery.on方法:http://api.jquery.com/on/ 所以代码看起来像是:$(document).on('click', '#trigger-overlay', function() { ... });。 您也可以使用该事件绑定将$('.order').attr('id','trigger-overlay');移到脚本上方。

答案 1 :(得分:0)

基于您的

Database.SetInitializer(new YourInititalizer());
var dbContext = new TheContextYouAreUsing();
dbContext.Database.Initialize(force: true);

我不确定你是如何得到一个触发模式的,因为它没有连接到像下面这样的事件处理程序:

<button id="trigger-overlay" class="order>Open Overlay</button>

在这种情况下,会有一个针对overlay / modal的函数,并将其CSS <button onclick="turnOverlayOn()">Demo Button</button> 属性从display转换为noneblock(但是你会喜欢显示它):

inline-block

我建议专注于附加onClick事件,该事件会触发一个功能,该功能会执行您想要使叠加层显示的内容。

用于关闭覆盖的功能可以是:

var turnOverlayOn = function () {
$('targetOverlayId').css('display','block')
}

您可以将其附加到其他锚标记或按钮以关闭叠加层。

注意:对于锚标记,事件的作用与对按钮的作用相同。

答案 2 :(得分:0)

根据我的理解,您想要触发按钮点击事件。使用带有类顺序的标签。

尝试

jQuery(document).on('click','.order',function(){
    jQuery('#trigger-overlay').click();
});

您可以使用jquery触发click事件。由于我不了解您的DOM结构jQuery(document).on('click','.order',function()..即使您的元素是动态的(在脚本执行后添加到DOM)也会起作用,因为click事件绑定到文档。

注意:

使用wordpress时,请始终使用 jQuery而不是$ 来避免冲突。