2012-12-12 56 views
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的同一代码创建页面没关系底部的按钮,但没有任何反应的点击与给出的相同的变量第一个例子。我也尝试了.on .

.addnew#addnew这里有一个小提琴(感谢马克Schultheiss!)一起工作类似的按钮:http://jsfiddle.net/Cecfu/1/

我是不是做错了什么或者是合流的jQuery特征模拟?

回答

0

这样的:

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

应该是:

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

因为buttonid="addnew"而不是#addnew

一个孩子或者,如果你愿意,你可能最终做:

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

...与id="addnew"

+0

呀委派click事件对现时或未来的子元素,我与发挥,然后再发布。不幸的是,它不起作用,尽管它应该。它在Confluence中适合你,还是它应该如何? –

+0

@EasyLife:'.on()'应该可以工作,不管平台是什么http://api.jquery.com/on/ – JFK

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

}); 
+0

已经做到了,甚至在最初的问题中提到过。在Confluence中不起作用... –