English 中文(简体)
jj 查询如何逆向移除()事件
原标题:jQuery how to reverse a remove() event

我有这个密码:

$(window).resize(function() {
        if($(window).height() < 768) {
            $( div#navigation ul li br ).remove()
        } else {
}
    })

能否将删除事件倒转到其它位置? 我需要这些 < br/ > 标记与动作前的位置相同 。

最佳回答
$(window).resize(function() {
  $( div#navigation ul li br ).toggle( $(this).height() >= 768 );
});

.toggle( () ) 需要一个布尔参数来定义选定元素是否应该隐藏( jQuery 使用 CSS < code> display: no; ) 或显示 。

在此情况下, 使用窗口高度来计算布尔值 。


过早优化 : 如果上面的内容由于某种原因迟缓, 您 可以提前选择休息时间, 并记住状态来决定是否首先需要做什么 : @ info/ plain

$(window).resize( (function () {
  var $window = $(window),
      $navigationBreaks = $( div#navigation ul li br ),
      prevState = isLargeWindow();

  function isLargeWindow() {
    return $window.height() >= 768;
  }

  return function () {
    var newState = isLargeWindow();

    if (newState == prevState) return;

    $navigationBreaks.toggle(newState);
    prevState = newState;
  };
})() );

这比单线方法快得多, 复杂得多, 可能比单线方法快几毫秒。 带它一粒盐。

问题回答

这样做的最佳方式是使用 togle (或 hide show ) 和 non remove ,

$(window).resize(function() {
    if($(window).height() < 768) {
        $( div#navigation ul li br ).toggle();
    } else {
        $( div#navigation ul li br ).toggle();
    }
});

在 jQuery ( 或 JavaScript ) 中, 没有单一的“ 重新附加” DOM 元素的方法。 相反, 您需要做的是创建新元素, 以便稍后附加ususal 附加方法, 或者存储 < code>. remove d/ < code>. dettach 元素, 然后在稍后再附加该元素 :

$br = $( div#navigation ul li br ).remove();
//...
$( div#navigation ul li ).append($br);

然而,您只能使用 < code>. 附录 , < code>. prependd , . wrap 等。 如果它是在其他子元素之间,您不能将其插入到之前的位置, 除非您有某种占位符, 或者您知道要在前后插入的子元素 。

如果您删除该元素的唯一理由就是隐藏它,那么您可以使用各种显示/隐藏方法使该元素在视觉上消失,而不将其从DOM中移除。





相关问题
getGridParam is not a function

The HTML: <a href="javascript:void(0)" id="m1">Get Selected id s</a> The Function: jQuery("#m1").click( function() { var s; s = jQuery("#list4").getGridParam( selarrrow )...

selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

jQuery cycle page with links

I am using the cycle plugin with pager functionality like this : $j( #homebox ) .cycle({ fx: fade , speed: fast , timeout: 9000, pager: #home-thumbs , ...

jquery ui dialog opens only once

I have a button that opens a dialog when clicked. The dialog displays a div that was hidden After I close the dialog by clicking the X icon, the dialog can t be opened again.

jConfirm with this existing code

I need help to use jConfirm with this existing code (php & Jquery & jAlert). function logout() { if (confirm("Do you really want to logout?")) window.location.href = "logout.php"; } ...

Wrap text after particular symbol with jQuery

What I m trying to do, is wrap text into div inside ll tag. It wouldn t be a problem, but I need to wrap text that appears particularly after "-" (minus) including "minus" itself. This is my html: &...