У меня есть код jquery, который закрыт, чтобы изменить тип элемента при щелчке и назад, если пользователь щелкнул anye out вне этого элемента.Переключить тип элемента при щелчке
Проблема в том, что некоторые причины в CodePen вообще не меняются при щелчке, но на исходном веб-сайте это происходит только один раз, потом ничего.
HTML-
<div>
<span class="input-group-btn">
<button type="submit" class="btn btn-primary"><span class="btn"aria-hidden="true">Go</span></button>
</span>
</div>
Javascript:
jQuery(document).ready(function() {
$.fn.changeElementType = function(newType) {
var attrs = {};
$.each(this[0].attributes, function(idx, attr) {
attrs[attr.nodeName] = attr.nodeValue;
});
this.replaceWith(function() {
return $("<" + newType + "/>", attrs).append($(this).contents());
});
}
$('.input-group-btn button').changeElementType('div');
$(function() {
$(".input-group div").on("click", function(e) {
$('.input-group-btn div').changeElementType('button');
e.stopPropagation()
});
$(document).on("click", function(e) {
if ($(e.target).is(".input-group input") === false) {
$('.input-group-btn button').changeElementType('div');
}
});
});
});
Вот ручка: http://codepen.io/florinsimion/pen/AXxKbG
Любые идеи?
На консоли: 'pen.js: 4 Uncaught TypeError: Невозможно прочитать атрибуты свойств неопределенного' – vaso123