我试着有一个 .click()
在 <a>
上发现它不会在我每次单击时触发,它应该做的是打开一个对话框。
这不是我需要将值传递给我的 jquery 的唯一问题。我就是想不通这个。
我需要它是一个 <a>
因为它已经不在下拉菜单中了。你有什么建议吗?
编辑 这是我使用的代码,它有效
$(document).ready(function() {
$('#dialog').dialog({ autoOpen: false, bgiframe: true, modal: true, height: 600, width: 1000, Close: function() { $(this).dialog('destroy'); } });
$('a').live('click', function(evt) {
evt.preventDefault();
var ids = $(this).attr('id');
var first = "<iframe style='width: 100%; height: 100%;' src='" + "" + "'</iframe>'";
$('.iframe').html(ids);
$('#dialog').dialog('open');
});
});
这段代码插入对话框,每次点击打开,每次都有效,这里的技巧是最后的“销毁”和 inilise
最佳答案
这将在每次点击时触发。虽然我怀疑情况会是这样,但请检查您是否有任何其他事件处理程序正在监听“a”,它们正在应用 event.stopImmediatePropagation()
。尝试将 return false
添加到点击处理程序的末尾,或者更好:
$('a').click(function(evt) {
var first = "<iframe style='width: 100%; height: 100%;' src='" + need to put value here + "'</iframe>'";
$('.iframe').html(first);
$('#dialog').dialog({ bgiframe: true, modal: true, height: 600, width: 1000 });
evt.preventDefault();
});
如果您不阻止 anchor 标记的默认操作,您可能会发现页面正在重新加载,这会给人一种没有任何事情发生的印象。
你在想什么样的“值(value)”?您可以使用 jQuery 的 data()存储信息,当然您可以访问该范围内的所有全局变量。
编辑: 要回答您的评论,您可以检索点击事件中 a 的 ID,如下所示:
var theIdOfTheA = $(this).attr('id');
请注意,这必须放在处理程序中。
编辑 2:
$('a').live('click', function(evt) {
var first = "<iframe style='width: 100%; height: 100%;' src='" + $(this).attr('id') + "'</iframe>'";
$('.iframe').html(first);
$('#dialog').dialog({ bgiframe: true, modal: true, height: 600, width: 1000 });
evt.preventDefault();
});
关于javascript - 每次用 .click() 触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2720351/