如何检测特定元素?

时间:2017-01-20 15:51:05

标签: javascript jquery html

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

  • 点击input专注于
  • 现在点击button

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

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

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

遵循这两个步骤后的预期结果应为two|

1 个答案:

答案 0 :(得分: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|");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<button>Add "two"</button>