【问题标题】:select all other elements inside div except the element clicked选择 div 内的所有其他元素,但单击的元素除外
【发布时间】:2014-09-27 23:44:20
【问题描述】:

首先我想说这个问题很难回答,也很难解释。我有一个 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" );
    }

如果您不明白,请告诉我,我会尽力解释得更好。谢谢你。 这是应用程序的屏幕截图,因此您可以看到它在做什么,代码问题在底部:

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

【问题讨论】:

  • 你至少需要使用mysqli。您可以使用 jQuery 来更改按钮,例如 $(this).css('background', '#4CC43C')。使用外部 JavaScript。

标签: javascript jquery html css ajax


【解决方案1】:

问题有点模糊,没有一些 html 来提供上下文和对什么可以或不能点击的详细解释。

在最高级别,您可以在父级&lt;div&gt; 上使用点击事件并将类(或内联样式)应用于点击的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

【讨论】:

  • 谢谢你,我会试试你的答案。
  • 如果你对你想要完成的事情给出更好的定义会有所帮助
【解决方案2】:

你可能会使用 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*/});
});

【讨论】:

    猜你喜欢
    • 2012-05-20
    • 1970-01-01
    • 2023-03-19
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多