如何检测特定元素?

Mar*_* AJ 9 html javascript jquery

请按照以下两个步骤操作:

  • input通过点击它来关注它
  • 现在点击 button

$("input").on({
    focusout: function() {
    	this.value += "one|";
    }
});

$("button").on("click", function(){
  $old_val = $("input").val();
  $("input").val($old_val+"two|");
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<button>Add "two"</button>
Run Code Online (Sandbox Code Playgroud)

结果将是:one|two|!好吧,我不想要这个.我想focusout点击按钮时禁用.我怎样才能做到这一点?

遵循这两个步骤之后的预期结果应该是two|.

Cha*_*ase 2

您希望阻止按钮调用mousedown浏览器更改焦点的默认事件。如果您将其分配给按钮上的事件,则使用e.preventDefault()将阻止这种情况发生。mousedown

$("input").on({
    focusout: function() {
    	this.value += "one|";
    }
});
$("button").on("mousedown", function(e) {
  e.preventDefault(); 
});
$("button").on("click", function(){
  $old_val = $("input").val();
  $("input").val($old_val+"two|");
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<button>Add "two"</button>
Run Code Online (Sandbox Code Playgroud)