我有一个似乎是一个简单的问题。我有一个在页面加载时运行的jquery函数,尽管我特意将它设置为在特定元素上的'click'事件之后运行。
这是功能:
$('#boxShow').click(function() {
$('#colorBox').animate({
height: 'toggle'
}, 400, function() {
// Code that will run after the click
});
});
有没有办法阻止此代码在“click”事件之前运行?谢谢!
修改
完整的jquery代码:
$(document).ready(function() {
$("#accordion").accordion({
event: "click"
});
$("#TagsSelectBox").multiSelect({
minWidth:130,
selectedList:5,
showHeader:false
});
$('#boxShow').click(function() {
$('#colorBox').animate({
height: 'toggle'
}, 400, function() {
// Animation complete.
});
});
$('#test').colorPicker({
defaultColor: 0, // index of the default color (optional)
columns: 13, // number of columns (optional)
click:function(c){
$('#boxShow').css("background-color",c);
}
});
});
修改 以防万一有人想知道,这是最后一个版本,经过一些调整,使其足够通用,可用于多个'颜色可选“项目:
如果您想自己尝试一下,可以从syronex网站下载颜色选择器插件。链接在评论中!
感谢所有帮助我实现这一目标的人!
答案 0 :(得分:2)
如果我不得不猜测我不确定你的colorpicker插件是什么,那么我会说尝试注释掉点击该控件的行,因为它可能会启动点击该控件
$('#test').colorPicker({
defaultColor: 0, // index of the default color (optional)
columns: 13, // number of columns (optional)
//click:function(c){
//$('#boxShow').css("background-color",c);
//}
});
由于您的所有代码似乎都是 divs ,请尝试将点击事件功能更改为此
$('div').click(function(e) {
var $target = $(e.target);
if ($target.is('#boxShow')) {
$('#colorBox').animate({
height: 'toggle'
}, 400, function() {
// Code that will run after the click
});
} else {
// do actions for a click anywhere else inside div
e.preventDefault();
}
});
如果可以,那么您发布的代码就会出现其他问题。
答案 1 :(得分:0)
猜测你的意思是查询没有得到任何元素,因此无效。
您需要将其放在文档就绪处理程序中,以便在文档加载后调用它。
$(document).ready(function(){
$('#boxShow').click(function() {
$('#colorBox').animate({
height: 'toggle'
}, 400, function() {
// Code that will run after the click
});
});
});