javascript - JQuery-更改元素的 id 并在单击时调用函数

标签 javascript jquery html

我有一个带有一些 id 的元素,我改变了它的 ID 并且当我点击那个元素(现在有了新的 ID)时,它仍然调用以前的函数ID

$('#1st').click(function(){
    $('#1st').attr('id','2nd');
    alert("id changed to 2nd");
});
$('#2nd').click(function(){
    alert("clicked on second");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="javascript:;" id="1st">Click</a>

例子是 here

最佳答案

因为您在元素存在之前添加了事件。它找不到元素。要么在更改 id 时附加事件,要么需要使用事件委托(delegate)。

    $('#1st').on("click.one", function(e) {
      $('#1st').attr('id', '2nd');
      alert("id changed to 2nd");
      e.stopPropagation();
      $(this).off("click.one");
    });
    $(document).on("click", '#2nd', function() {
      alert("clicked on second");
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="#" id="1st">Click</a>

关于javascript - JQuery-更改元素的 id 并在单击时调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324630/

相关文章:

javascript - 隐藏动态输入框的动态复选框

css - div 内的换行符分隔单词

javascript - 需要帮助显示()隐藏()底部序列导航取决于选择输入

javascript - 重置为默认 slider 值react-native

javascript - Deferred 对象和它自己的 Promise 对象有什么区别?

javascript - 使用 AJAX 设置的值进行两种方式绑定(bind) - Observable 在设置控件的值时不会通知

jquery - 在 Webkit 浏览器上使用 jQuery 读取和设置 z-index 值

javascript - 相当于 JavaScript 中的 continue 语句

javascript - 如何将首次访问者重定向到另一个页面?

javascript - jQuery 不会选择标签?