如何通过'this'引用按钮并将其传递给函数?
$(document).on("click", ".join-group-btn", function () {
var groupid=$(this).val();
var button=$(this);
joinGroup(groupid, button);
});
然后我将joinGroup函数保存在我的库中的单独页面上:
function joinGroup (groupid, buttonIn) {
var button = $(buttonIn);
var l = Ladda.create(document.querySelector(buttonIn));
}
由于按钮是动态生成的,因此ID不起作用。
这引发:
Dom exception 12: An invalid or illegal string was specified
感谢您的帮助!非常感谢。
答案 0 :(得分:0)
你应该使用querySelector
和类似CSS的语法选择器
您的buttonIn
是一个jQuery对象元素
document.querySelector(buttonIn) // you need to pass a String selector
// like "#someId",
// not an jQuery object
一个例子是:
$(document).on("click", ".join-group-btn", function () {
joinGroup( this.value, $(this), this.id );
});
function joinGroup ( value, $this, id) {
// console.log( value ); // "Some Value"
// console.log( $this ); // [Object] the clicked jQuery Element
// console.log( id ); // "someID"
// Now if you want to use querySelector
var theButton = document.querySelector("#"+ id); // The missing #
// Or Directly operate over the `button` Element object argument
// $this.css({color:"red"}); // Cause it's a jQuery element
}
答案 1 :(得分:0)
document.querySelector期望一个选择器字符串。但是你的函数需要一个DOM对象吗?你可以传递它:
function joinGroup (groupid, buttonIn) {
var l = Ladda.create(buttonIn[0]);
}