Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery.click()方法的行为不符合预期_Javascript_Jquery - Fatal编程技术网

Javascript jQuery.click()方法的行为不符合预期

Javascript jQuery.click()方法的行为不符合预期,javascript,jquery,Javascript,Jquery,我编写了一个函数,在单击某个元素时,它将用一个隐藏的跨度替换一个div。当我在标记的“onclick=”attr中使用事件处理程序时,函数运行良好。但后来我尝试使用jQuery的.click()方法替换onclick attr。现在,当我试着在页面上使用它时,除了一声沉闷之外,什么都没有发生 然而,如果我在Chrome的js控制台中执行完全相同的代码,效果会非常好。这是我的js: $("a#delete").click(function () { $("a#delete").replac

我编写了一个函数,在单击某个元素时,它将用一个隐藏的跨度替换一个div。当我在标记的“onclick=”attr中使用事件处理程序时,函数运行良好。但后来我尝试使用jQuery的.click()方法替换onclick attr。现在,当我试着在页面上使用它时,除了一声沉闷之外,什么都没有发生

然而,如果我在Chrome的js控制台中执行完全相同的代码,效果会非常好。这是我的js:

$("a#delete").click(function () {
    $("a#delete").replaceWith($("span.hconf").attr("style", "none"))
});
以下是相关的html(在div内,在div外):


你确定吗
我知道我可以用“this”关键字更改第二个$(“a#delete”),但我现在不做了,因为我不确定这是否是问题的一部分。我是js/jQuery的新手。

it:

…您是指style=“display:none”吗?您可以轻松地使用:


最后,在ID选择器上使用过滤标记是没有意义的。只需执行
$(“#delete”)
,它既短又快。

在DOM就绪之前运行此JS,请尝试将此代码放入
$(function(){})
(DOM就绪)块中

或者,您可以尝试使用
.live

  $("a#delete").live('click', function () {
    $("a#delete").replaceWith($("span.hconf").attr("style", "display:none"));
  });

注意:使用
.hide()
.show()
更改显示属性。

在浏览器看到“删除”锚HTML之前,您的代码正在运行。因此,jQuery选择器“a#delete”什么也找不到,因此总体上什么也没有发生。通过将初始化代码放入“就绪”处理程序:


将其执行延迟到整个文档已被解析的时间点。或者,您可以将脚本块放在

是“删除”标识符还是CSS类的末尾?“删除”是标识符。我也不熟悉HTML和CSS,所以我肯定我在这方面做得不对。我只关心js logic atm。谢谢你更新了:.hide()和我的过滤器代码冗余。
$(document).ready(function() {
    $("a#delete").click(function () {
        $(this).replaceWith($("span.hconf").attr("style", "display:none"));
    });
});
$("span.hconf").hide();
$(function(){
  $("a#delete").click(function () {
    $("a#delete").replaceWith($("span.hconf").attr("style", "display:none"));
  });
});
  $("a#delete").live('click', function () {
    $("a#delete").replaceWith($("span.hconf").attr("style", "display:none"));
  });
$(function() {
  $('a#delete').click(function() { /* ... */ });
});