2014-09-27 188 views
1

我想先说这个问题很难回答,难以解释。我有一个div里面有一个按钮列表。当单击其中一个按钮时,我想确保所有其他按钮都设置为其默认样式,并且该按钮的背景被点击到#4CC43C。我希望我解释正确。所有的按钮也通过ajax请求发送。其他细节已被省略,因为它很难解释。下面是代码:除了点击元素之外,选择div内的所有其他元素

腓用于获取按钮:

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

让我知道如果你不明白,我会试着更好的解释。谢谢。 这里是应用程序的屏幕截图,所以你看到它在做什么的代码问题是在底部: picture of the application in action LOOK AT THE BOTTOM

的目标是太让用户知道其他用户他们选择。其余的已经完成。

+0

您需要使用至少mysqli的。您可以使用jQuery来执行像'$(this).css('background','#4CC43C')'这样的按钮更改。使用外部JavaScript。 – PHPglue 2014-09-28 00:06:52

回答

0

问题是有点模糊,没有一些HTML的上下文和精简解释什么可以或不能被点击。

同时你可以在父<div>使用click事件和应用类(或内嵌样式)到点击的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

改变类或样式
+0

谢谢我会试试你的答案。 – www139 2014-09-28 00:01:38

+0

会帮助你更好的定义你想要完成的事情 – charlietfl 2014-09-28 00:02:20

0

你可能会使用jQuery的()遍历函数来实现你想要的。

$('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*/}); 
}); 
相关问题