Javascript事件操作
Javascript event manipulating
我将用jquery制作一个就地编辑器。它通过单击要编辑的文本来工作,并用输入替换其中的内容。在当前具有选择标记的情况下。
除了使用<a>
标签外,它工作正常。。。如果你点击<a>
标签,它会确认你要做什么。你可以接受编辑模式或取消它。
如果接受编辑模式,则会将<a>
的内容更改为<select>
。问题出现在这一点之后:如果单击select,则父标记(<a>
)将引发新的页面加载。
我试图在<a>
上绑定一个带有错误返回的点击事件,但在这种情况下,鼠标无法进行选择。
我认为解决这个问题的另一种方法是将单击事件绑定到<select>
,并以某种方式操纵事件对象。。。
如何做到这一点?或者这是一种错误的做法?
更新:基本方法是无效的(a
中的select
),但我找到了一个解决方案:删除href
参数,就不需要丑陋的事件黑客攻击,而这在FF中根本不起作用。(类似的问题及其解释:在超链接问题中选择标签)
不要更改内容,要更改元素。将a
元素存储在某个位置,将其替换为select
,然后在完成后将其重新替换。这样你就不必为链接触发而烦恼了。
function ask ( e )
{
e.preventDefault (); //prevents default browser action
//do whatever
}
element.addEventListener ("click", ask);
为什么要操作事件对象?难道不能让a-event返回false,然后为select标记设置另一个事件处理程序吗?
将<select>
封装在<a>
标记中是无效的HTML。此外,劫持<a>
的点击事件处理程序来触发select的事件处理程序被认为是一种丑陋的黑客攻击。我建议您在DOM中将<select>
放在<a>
之后,并在编辑期间临时隐藏链接。
我会尝试使用jQuery的DOM操作方法。例如:$('#my_select').detach().insertAfter('#my_link');
这是一个简洁的演示
(示例:)
$('a').click(function(event) {
event.preventDefault();
$('#edit').show(500);
});
基本方法是无效的(a
中的select
),但我找到了一个解决方案:删除href
参数,您就不需要丑陋的事件破解,而这在FF中甚至都不起作用。(类似的问题及其解释:在超链接问题中选择标签)
- toogleClass函数来切换元素类并在事件期间执行某些操作
- 禁用先前单击按钮时的单击事件操作
- reactJs redux:如何对用户事件调度操作并将操作与化简器和存储链接
- 如何在执行某个操作后自动触发回车键事件
- 在悬停事件中创建一次性操作
- 将单击事件附加到按钮或链接上的类,该按钮或链接会触发 AJAX 帖子,然后延迟并继续原始操作
- MVC 下拉列表更改事件未正确调用控制器中的操作
- 如何在Javascript事件上触发rails控制器操作
- 如何使用 JavaScript 操作 html 按钮元素的“onclick”事件
- 如何删除绑定到单击事件的任何jQuery操作
- 如何在jquery可丢弃事件中执行某些操作
- html+jquery(绑定onclick事件以执行onclick之前的操作)
- 处理Ember中操作中的事件绑定和回调
- 如何使用body onload事件操作HTML音频标记和JavaScript函数
- 仅针对左滑动/右滑动事件阻止默认操作
- 在javascript中阻止文档执行默认操作时,在单个元素中使用默认事件
- 重命名连接名称并添加 JSF 操作事件
- 如何在滑块操作事件之前获取滑块的值
- 创建DOM后的Jquery操作事件不起作用
- 在jquery中循环操作/事件