0

我在 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 的特殊性?

4

2 回答 2

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");
 }); 

});
于 2012-12-12T08:31:08.620 回答
0

这个 :

$('addnew').on('click', 'button', function() { ...

应该 :

$('#addnew').on('click', function() { ....

因为buttonid="addnew"和不是的孩子#addnew

或者,如果您愿意,您最终可以这样做:

$('.wiki-content').on('click', '#addnew', function() { ...

...将click事件委托给当前或将来的子元素id="addnew"

于 2012-12-12T08:29:44.920 回答