在使用 replaceWith() 后无法在 jQuery 中设置 CSS 和单击处理程序
unable to set CSS and click handler in jQuery after use of replaceWith()
我正在使用jQuery将普通复选框替换为图像。我能够用图像替换复选框,但无法在图像上设置 CSS 和单击处理程序。
这是我的jQuery代码。
(function ($) {
$.fn.SetOnOff = function (onImage,offImage) {
debugger;
var html = '<img style="width: 80px; height: 30px" src="'+offImage +'"/>';
$(this).replaceWith(html);
$(html).css('cursor','pointer');
$(html).click(function(){
var fileName = $(this).attr('src');
if (fileName == onImage)
$(this).attr('src', offImage);
else
$(this).attr('src', onImage);
});
return $(this);
};
} (jQuery));
任何人都可以告诉我该怎么做吗?
使用此链接进行测试
对动态创建的元素使用事件委托
$("button").click(function () {
var v = "<div>" + $(this).text() + "</div>";
$(this).replaceWith(v);
$(v).css('cursor', 'pointer');
});
$(document).on("click", "div", function () {
alert($(this).text());
});
演示
您的css
和click
方法不是在替换的元素上调用的,而是在从html
字符串生成的新创建的HTML jQuery上调用的。
试试这个:
var $v = $("<div>" + $(this).text() + "</div>");
$(this).replaceWith($v);
$v.css('cursor', 'pointer');
$v.click(function () {
alert('a');
});
您正在尝试将 CSS 设置为字符串。 让它成为jQuery对象,如下所示
(function ($) {
$.fn.SetOnOff = function (onImage,offImage) {
debugger;
var html = $('<img style="width: 80px; height: 30px" src="'+offImage +'"/>');
$(this).replaceWith(html);
$(html).css('cursor','pointer');
$(html).click(function(){
var fileName = $(this).attr('src');
if (fileName == onImage)
$(this).attr('src', offImage);
else
$(this).attr('src', onImage);
});
return $(this);
};
} (jQuery));
演示
相关文章:
- 使用javascript可以设置css动画的当前百分比
- 设置 CSS 背景在 Firefox 中不起作用
- 使用javascript onclick设置CSS颜色
- JQuery在类中设置CSS Transform、Translate属性
- 如何从输入中手动设置css样式
- 通过类名和属性值获取元素,并在AngularJS中设置CSS
- 在Bootstrap行中为GoogleMaps设置CSS
- 如何为树中的选定节点设置css类
- 使用 jQuery 设置 CSS 属性
- jQuery-根据HTML属性设置CSS维度
- 通过JQuery选择器设置CSS类属性:隐藏计数
- 我将如何在JavaScript中设置CSS渐变背景
- 当 CSS 来自云或 CDN 时,如何设置 CSS 的回退 URL
- 通过 Javascript: 问题获取/设置 CSS 属性值
- 使用 jQuery 设置 css 样式
- 在使用 replaceWith() 后无法在 jQuery 中设置 CSS 和单击处理程序
- 为什么设置css left属性会导致它在8之前关闭
- JQuery - 同时设置css和实际宽度/高度宽度一个函数
- 使用jQuery循环设置css属性
- 使用javascript jQuery函数设置css属性