這是我第一次問這裏,是的這意味着我已經用盡了我的選擇。 我目前正在使用一個腳本來動態地修改和元素的css屬性。我遇到了改變兩個CSS屬性的腳本問題(我在示例中放置了兩個元素),而不僅僅是其中一個元素。 所以它是如何發生的:元素綁定兩次
- 更改一個元素的CSS。它已被正確更改
- 嘗試更改下一個元素的css
- 這兩個元素現在都具有後一個元素的相同css。
這裏是我所做的功能:(使用鼠標)
(function ($) {
$.fn.openMenu = function(opt) {
console.log(x+" "+y);
$('#contextmenu').css('position', 'absolute');
$('#contextmenu').css('top', y);
$('#contextmenu').css('left', x);
$('#contextmenu').show();
$('#close_context').on("click", function(){
$('#contextmenu').hide();
});
$("#addContent").on("click", function(){
$('#contextmenu').hide();
});
$('#deleteElement').on("click", function(){
element.remove();
$('#contextmenu').hide();
});
$('#contextmenu').unbind();
return this;
};
}(jQuery));
改變的CSS
(function ($) {
$.fn.modifyCssElement = function() {
var element = this;
console.log(this.attr('id'));
$('#border').val(element.css("border"));
$('#padding').val(element.css("padding"));
$('#z-index').val(element.css("z-index"));
$('#border-radius').val(element.css("border-radius"));
var elembg = this.css('background');
$("#padding").focusout(function(){
element.css('padding', "");
element.css('padding', $(this).val());
});
$("#border-radius").change(function(){
element.css('-webkit-border-radius', "");
element.css('-moz-border-radius', "");
element.css('border-radius', "");
element.css('-webkit-border-radius', $(this).val());
element.css('-moz-border-radius', $(this).val());
element.css('-moz-border-radius', $(this).val());
});
$("#border").change(function(){
element.css('border', "");
element.css('border', $(this).val());
console.log(element.attr('id'));
});
$("#z-index").change(function(){
element.css('z-index', "");
element.css('z-index', $(this).val());
});
return this;
};
}(jQuery));
這裏實際的代碼是一個小提琴
打開文本菜單劇本:
https://jsfiddle.net/092swmxj/1/
使用'.off'而不是'.unbind'。 '.unbind'只適用於綁定了'.bind()'的事件' –
以前已經試過'.off',也沒有工作;( – Jaycroll
@Jaycroll我認爲你正在試圖解決問題而不尋找根本原因問題伴侶的問題:) – Siddharth