我想首先说这个问题很难回答,很难解释。我有一个div,里面有一个按钮列表。当单击其中一个按钮时,我想确保所有其他按钮都设置为其默认样式,并且按钮的背景单击为#4CC43C。我希望我能正确解释。此外,所有按钮都由ajax请求发送。其他细节已被省略,因为它太难以解释。这是代码:
获取按钮的Php:
<?php
//code for connecting to database
include("connect.html");
$query = "select * from users";
$result = mysql_query($query, $connect);
while($row = mysql_fetch_array($result))
{
echo'
<input type="button" class="searchResult" onclick="var oldValue = this.value; this.value=\'(selected) \' + oldValue; this.style.backgroundColor = \'#51CA3E\'; document.getElementById(\'hiddenUserFlag\').value = \''.$row['id'].'\';" value="'.$row['username'].'">
';
}
?>
ajax请求代码:
function getUsers()
{
$( "#usersToSend" ).load( "php/getPrivateMessagingUsers.php" );
}
如果您不理解,请告诉我,我会尝试更好地解释它。谢谢。 这是应用程序的屏幕截图,因此您可以看到它正在执行的代码问题是在底部:
目标也是让用户知道他们选择了哪个其他用户。其余的已经完成。
答案 0 :(得分:1)
如果没有一些用于上下文的HTML以及对可以点击或不能点击的内容的详细解释,问题有点模糊。
在最高级别,您可以使用父<div>
上的点击事件,并将类(或内联样式)应用于点击的target
$('div').click(function(evt){
$(this).find('.clicked').removeClass('clicked');/* reset class from prior events */
$(evt.target).addClass('clicked'); /* modify the target*/
});
您可以使用$(evt.target).is('.buttonClass)
等方法添加额外的条件过滤器,以帮助确定是否需要在特定目标上更改类或样式
的 DEMO 强>
答案 1 :(得分:0)
你可能会使用jquery的siblings()遍历函数实现你想要的东西。
$('input.searchResult').click(function() {
$(this).siblings().each(function() {
// do your stuff for each of the inputs not clicked.
});
});
如果您的输入嵌套在某种结构中:
var $inputs = $('div#withThisId input');
$inputs.click(function(e) {
$inputs.not(this).each(function() {/*do your stuff here*/});
});