0

我有一篇较长的帖子描述了我正在尝试做的事情,但我认为这没有必要,所以我把这个简单化了。我正在努力让 Zurb Foundation 使用 Datatables。除了下拉菜单之外,这很容易。作为一个 js 新手,我很难让它工作。这是 Foundation 下拉菜单的一般语法。

<label for="customDropdown">Dropdown Label</label>
<select style="display:none;" id="customDropdown">
  <option select="selected">This is a dropdown</option>
  <option>This is another option</option>
  <option>Look, a third option</option>
</select>
<div class="custom dropdown">
  <a href="#" class="current">This is a dropdown</a>
  <a href="#" class="selector"></a>
  <ul>
    <li class="selected">This is a dropdown</li>
    <li>This is another option</li>
    <li>Look, a third option</li>
  </ul>
</div>

我遇到问题的地方是我的事件侦听器更新表格长度会在单击 UL 时触发,因此表格长度会使用先前选择的长度进行更新。因为 Foundation JS 是更新 UL LI 的那个,所以每次检测更改的尝试都不起作用,因为我的代码在 Foundation 将类应用于 LI 之前触发。

因此,要更新表格,我必须检测选项值的变化似乎很清楚

$('div#example_length form select').val()

或在李

$('div.custom ul li.selected').text()

我尝试将 .change() 函数链接到上面以检测值的变化,但它给了我一个错误。我很迷失在这里。我花了很多时间试图解决这个问题。

编辑:为了清楚起见,我要做的是在选择下拉列表时获取正确的值。我现在得到一个值,但它是以前选择的,而不是刚刚选择的。由于 Foundation 的工作方式,我很难用我的绿带 jQuery 技能来做这件事。

谢谢。

4

1 回答 1

2

没有更快地弄清楚这一点,我觉得有点愚蠢。这就是学习过程。

$('div.custom ul', nLength).on('click', 'li', function(event) {
foo = $(this).text();
console.log(foo);
});

我在此发现的是,出于某种原因,“绑定”仅检测到第一个事件,而“开启”检测到了每个事件动作。

于 2012-07-09T16:14:48.143 回答