【发布时间】:2015-09-19 07:29:13
【问题描述】:
我在 jquery 论坛中找到了回复,他们制作了一个函数来执行此操作,但结果不一样。 这是我为图像按钮创建的示例:
var buttonField = $('<input type="image" />');
buttonField.attr('id', 'butonFshi' + lastsel);
buttonField.val('Fshi');
buttonField.attr('src', 'images/square-icon.png');
if (disabled)
buttonField.attr("disabled", "disabled");
buttonField.val('Fshi');
if (onblur !== undefined)
buttonField.focusout(function () { onblur(); });
buttonField.mouseover(function () { ndryshoImazhin(1, lastsel.toString()); });
buttonField.mouseout(function () { ndryshoImazhin(0, lastsel.toString()); });
buttonField.click(function () { fshiClicked(lastsel.toString()); });
我有这种情况:
buttonField[0].outerHTML = `<INPUT id=butonFshi1 value=Fshi src="images/square-icon.png" type=image jQuery15205073038169030395="44">`
而不是我发现的外部函数给出了 buttonField.outer() = <INPUT id=butonFshi1 value=Fshi src="images/square-icon.png" type=image>
函数是:
$.fn.outer = function(val){
if(val){
$(val).insertBefore(this);
$(this).remove();
}
else{ return $("<div>").append($(this).clone()).html(); }
}
这样我就松开了我插入的处理程序。 有没有办法用jquery获取outerHTML,以便在不丢失处理程序的情况下跨浏览器?!
【问题讨论】:
-
创建自定义属性不是一件好事,比如
jQuery15205073038169030395="44"。相反,使用 jQuery 函数.data(element, key, value)来存储自定义数据。然后,可以使用.clone(true),这里的布尔值表示是否复制数据和事件
标签: javascript jquery cross-browser