我在Confluence中遇到某个jquery有问题。 我有这段代码:
## @param pmname:title=Name(select)|required=true|type=string
<script>
AJS.toInit(function() {
$(".sectionMacroWithBorder").not(":contains('$parampmname')").addClass("hidden");
});
</script>
哪种方法非常完美 - 隐藏所有不包含给定文本的部分。 但是,当我尝试创建一个按钮以激活相同的代码时单击
## @param pmname:title=Name(select)|required=true|type=string
<script>
AJS.toInit(function() {
$('.wiki-content').append('<button id="addnew" type="button">$parampmname</button> ');
$('addnew').on('click', 'button', function() {
$(".sectionMacroWithBorder").not(":contains('$parampmname')").addClass("hidden");
});
});
</script>
jquery在页面底部创建了按钮,但是在点击时没有任何事情发生,与第一个示例中给出的变量相同。我还为.addnew
#addnew
和.on .
这是一个小提琴(感谢Mark Schultheiss!),其中有类似的按钮工作:http://jsfiddle.net/Cecfu/1/
我做错了什么或是Confluence jquery pecularity?
答案 0 :(得分:0)
这个:
$('addnew').on('click', 'button', function() { ...
应该是:
$('#addnew').on('click', function() { ....
因为button
有id="addnew"
且不是#addnew
的孩子
如果您愿意,也可以最终做到:
$('.wiki-content').on('click', '#addnew', function() { ...
...使用click
id="addnew"
事件委托给现在或将来的子元素
答案 1 :(得分:0)
为点击监听器尝试#addnew
AJS.toInit(function() {
$('.wiki-content').append('<button id="addnew" type="button">$parampmname</button> ');
$('#addnew').on('click', 'button', function() {
$(".sectionMacroWithBorder").not(":contains('$parampmname')").addClass("hidden");
});
});